Mencegah NumberFormatException untuk Bukan Integer
Apabila memproses data berangka, adalah penting untuk mengendalikan situasi di mana nilai berangka yang dijangka tiada atau tidak angka. Di Java, NumberFormatException berlaku apabila cuba menghuraikan rentetan bukan berangka kepada integer.
Pertimbangkan senario berikut:
java.lang.NumberFormatException: For input string: "N/A" ...
Pengecualian ini menunjukkan bahawa rentetan "N/A" tidak boleh ditafsirkan sebagai integer. Untuk mengelakkan ini, terdapat dua strategi utama:
Pengendalian Pengecualian
Dalam pendekatan ini, kami secara eksplisit menyemak potensi nilai bukan berangka sebelum cuba menghuraikan rentetan:
try { int i = Integer.parseInt(input); } catch (NumberFormatException ex) { // Handle the exception (e.g., log error, provide user feedback) }
Jika rentetan bukan angka, blok pengecualian akan dilaksanakan, membolehkan anda mengendalikan situasi dengan anggun.
Padanan Corak
Sebagai alternatif, kita boleh menggunakan keupayaan ungkapan biasa Java untuk mengesahkan sama ada rentetan itu sepadan dengan format integer yang dijangkakan:
String input = ...; String pattern = "-?\d+"; if (input.matches(pattern)) { // The string is an integer } else { // The string is not an integer }
Corak "-?d " sepadan dengan mana-mana integer positif atau negatif, memastikan kami hanya meneruskan penghuraian jika rentetan adalah sah.
Dengan menggunakan salah satu kaedah, anda boleh menghalang NumberFormatException dan memastikan kod anda mengendalikan nilai bukan angka dengan sewajarnya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencegah NumberFormatException Apabila Menghuraikan Rentetan Bukan Integer dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!