NumberFormatException dalam Java ialah pengecualian biasa yang biasanya berlaku apabila rentetan ditukar kepada jenis angka. Artikel ini akan meneroka sebab dan penyelesaian pengecualian NumberFormatException.
Punca NumberFormatException:
- Ralat format semasa menukar rentetan kepada jenis angka. Contohnya, untuk rentetan "abc", jenis angka tidak boleh ditukar kepada nilai angka, jadi NumberFormatException dilemparkan.
- Apabila rentetan ditukar kepada jenis angka, ia melebihi julat jenis angka. Sebagai contoh, untuk rentetan "2147483648", ia melebihi had atas jenis integer, jadi NumberFormatException akan dilemparkan.
- Rentetan mengandungi aksara yang menyalahi undang-undang. Contohnya, jika rentetan mengandungi ruang atau aksara bukan angka lain, seperti "10.5", aksara haram ini juga akan menyebabkan pengecualian NumberFormatException.
- Rentetan mengandungi ruang hadapan atau belakang. Dalam kes ini, rentetan mungkin tidak ditukar dengan betul kepada jenis angka, menyebabkan pengecualian NumberFormatException dibuang.
- Rentetan kosong atau mempunyai panjang 0. Dalam kes ini, jenis berangka tidak boleh mendapatkan nilai daripada rentetan kosong atau rentetan panjang 0, sekali gus mencetuskan pengecualian NumberFormatException.
Cara menyelesaikan pengecualian NumberFormatException:
- Semak format rentetan. Sebelum menukar rentetan kepada jenis angka, pastikan ia diformat dengan betul. Anda boleh menggunakan ungkapan biasa untuk mengesahkan bahawa rentetan memenuhi keperluan format tertentu.
- Semak julat data. Sebelum menukar rentetan kepada jenis angka, pastikan ia tidak melebihi julat jenis angka.
- Semak sama ada rentetan itu mengandungi aksara haram. Gunakan kaedah java.lang.Character.isDigit() untuk menyemak sama ada semua aksara dalam rentetan ialah digit.
- Alih keluar ruang hadapan atau belakang daripada rentetan. Gunakan kaedah String.trim() untuk mengalih keluar ruang hadapan atau belakang daripada rentetan.
- Semak sama ada rentetan kosong atau mempunyai panjang 0. Gunakan kaedah String.isEmpty() untuk menyemak sama ada rentetan kosong.
Akhir sekali, memandangkan NumberFormatException adalah perkara biasa apabila menukar rentetan kepada jenis berangka, untuk mengelakkan pengecualian dilemparkan, operasi penukaran yang melibatkan rentetan dalam kod harus dikendalikan dengan berhati-hati. Apabila menggunakan kaedah seperti Integer.parseInt() dan Double.parseDouble(), pastikan anda mengambil langkah berjaga-jaga untuk memastikan kod tersebut boleh mengendalikan rentetan yang diformat dan sah dengan betul.
Atas ialah kandungan terperinci Apakah punca biasa NumberFormatException di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!