Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để xử lý NumberFormatException (bỏ chọn) trong Java?


NumberFormatException không được kiểm tra ngoại lệ ném bởi parseXXX () khi chúng không thể định dạng (chuyển đổi) một chuỗi thành một số .

NumberFormatException có thể được ném bởi nhiều phương thức / hàm tạo trong các lớp của java.lang bưu kiện. Sau đây là một số trong số chúng.

  • public static int parseInt (String s) ném NumberFormatException
  • public static Byte valueOf (String s) ném NumberFormatException
  • public static byte parseByte (String s) ném NumberFormatException
  • public static byte parseByte (String s, int radix) ném NumberFormatException
  • public Integer (String s) ném NumberFormatException
  • public Byte (String s) ném NumberFormatException

Có những tình huống được xác định cho mỗi phương thức, nơi nó có thể ném ra NumberFormatException . Ví dụ: public static int parseInt (String s) ném NumberFormatException khi nào

  • Chuỗi s là null hoặc độ dài của s bằng 0.
  • Nếu Chuỗi s chứa các ký tự không phải số.
  • Giá trị của chuỗi s không đại diện cho Số nguyên.

Ví dụ1

public class NumberFormatExceptionTest {
   public static void main(String[] args){
      int x = Integer.parseInt("30k");
      System.out.println(x);
   }
}

Đầu ra

Exception in thread "main" java.lang.NumberFormatException: For input string: "30k"
       at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
       at java.lang.Integer.parseInt(Integer.java:580)
       at java.lang.Integer.parseInt(Integer.java:615)
       at NumberFormatExceptionTest.main(NumberFormatExceptionTest.java:3)


Cách xử lý NumberFormatException

Chúng tôi có thể xử lý NumberFormatException theo hai cách

  • Sử dụng khối try and catch xung quanh mã có thể gây ra NumberFormatException .
  • ) Một cách khác để xử lý ngoại lệ là sử dụng ném từ khóa.

Ví dụ2

public class NumberFormatExceptionHandlingTest {
   public static void main(String[] args) {
      try {
         new NumberFormatExceptionHandlingTest().intParsingMethod();
      } catch (NumberFormatException e) {
         System.out.println("We can catch the NumberFormatException");
      }
   }
   public void intParsingMethod() throws NumberFormatException{
      int x = Integer.parseInt("30k");
      System.out.println(x);
   }
}

Trong ví dụ trên, phương thức intParsingMethod () ném đối tượng ngoại lệ được ném bởi Integer.parseInt (“30k”) phương thức gọi của nó, là main () trong trường hợp này.

Đầu ra

We can catch the NumberFormatException