Rumah >Java >javaTutorial >NumberFormatException dalam Java
NumberFormatException ialah pengecualian tidak ditandai dalam java yang berlaku apabila pengguna cuba menukar rentetan kepada nilai angka. NumberFormatException ialah kelas terbina dalam java yang ditakrifkan dalam pakej Java.lang.NumberFormatException. Kelas IllegalArgumentException ialah superclass NumberFormatException kerana ia adalah pengecualian yang tidak ditanda, jadi ia tidak dipaksa untuk mengendalikan dan mengisytiharkannya. NumberFormatException sebenarnya dilemparkan oleh fungsi parseXXX() apabila fungsi tidak dapat menukar atau memformat(menukar ) rentetan kepada nilai berangka seperti integer, float, double dsb., kerana format rentetan input adalah haram dan tidak sesuai . Sebagai contoh, dalam program Java, kadangkala input pengguna diterima melalui argumen baris arahan sebagai medan teks dalam bentuk rentetan. Dan untuk menggunakan rentetan ini dalam beberapa operasi aritmetik, ia perlu menghuraikan atau menukar kepada jenis data (jenis angka khusus) terlebih dahulu dengan menggunakan fungsi parseXXX() kelas pembalut.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Hierarki kelas NumberFormatException ialah:
Objek ->Boleh Lempar -> Pengecualian ->RuntimeException ->NumberFormatException>.
Sintaks
Berikut ialah pengisytiharan untuk java.io. Kelas PrintWriter.
public class NumberFormatException extends IllegalArgumentException implements Serializable { // Constructors of the NumberFormatException class }Di atas ialah sintaks NumberFormatException, di mana ia dilanjutkan kepada:
IllegalArgumentException class and implements SerializableBagaimana NumberFormatException berfungsi dalam Java?
Terdapat pelbagai sebab untuk membuang NumberFormatException, seperti yang dapat kita lihat di bawah –
Contoh #1
Kod:
//package p1; import java.util.Scanner; public class Demo { public static void main( String[] arg) { int age; Scanner sc = new Scanner(System.in); System.out.println("Please Enter your age : "); //throws Exception as if the input string is of illegal format for parsing as it as null or alphanumeric. age = Integer.parseInt(sc.next()); System.out.println("Your age is : " +age); } }
Output:
Apabila pengguna memasukkan "25+", output kod di atas ialah:
Apabila pengguna memasukkan bukan rentetan "25F" yang diformat dengan baik, outputnya ialah:
Apabila pengguna memasukkan rentetan "Twenty Five", outputnya ialah:
Apabila pengguna memasukkan rentetan "null", outputnya ialah:
Apabila pengguna memasukkan nilai rentetan sebagai apungan "40.78", outputnya ialah:
When the user enters a string “25”, which is a valid string. The output is:
Explanation: As in the above code, the age value is accepted from the user in string format, which further converts into the integer format by using the Integer.parseInt(sc.next()) function. While the user an illegal input string or not a well-formatted string, the NumberFormatException occurs, it throws, and the program terminates unsuccessfully. So to provide the valid string, it should be taken care that an input string should not be null, check an argument string matches the type of the conversion function used and also check if any unnecessary spaces are available; if yes, then trim it and so all care must be taken.
Next, we write the java code to understand the NumberFormatException where we generate the NumberFormatException and handle it by using the try-catch block in the program, as below –
Code:
//package p1; import java.util.Scanner; public class Demo { public static void main( String[] arg) { int age; Scanner sc = new Scanner(System.in); try { System.out.println("Please Enter your age : "); //throws Exception as if the input string is of illegal format for parsing as it as null or alphanumeric. age = Integer.parseInt(sc.next()); System.out.println("Your age is : " +age); } catch(NumberFormatException e) { System.out.println("The NumberFormatExceptionoccure."); System.out.println("Please enter the valid age."); } } }
When the user enters a string “23F”, the output is:
When a user enters a string “23”, the output is:
Explanation: As in the above code try-catch block is used. It is always a good practice to enclose lines of code that can throw an exception in a try-catch block by which it handles the NumberFormatException and prevents it from generating the Exception.
The NumberFormatException in java is an unchecked exception that occurs when a not well-formatted string is trying to converts into a numeric value by using the parseXXX() functions. The NumberFormatException is a built-in class in which is defined in the Java.lang.NumberFormatException package.
Atas ialah kandungan terperinci NumberFormatException dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!