如何在Java中处理NumberFormatException(未选中)?

该 NumberFormatException的 是一个未经检查的 异常被抛出 parseXXX()方法时,他们无法格式 (转换)一个字符串转换成数。

该 NumberFormatException异常 可以由许多被抛出方法/构造中的类的java.lang 包。以下是其中一些。

  • 公共静态int parseInt(String s)引发NumberFormatException

  • 公共静态字节valueOf(String s)引发NumberFormatException

  • 公共静态字节parseByte(String s)引发NumberFormatException

  • 公共静态字节parseByte(String s,int radix)抛出NumberFormatException

  • 公共Integer(String s)引发NumberFormatException

  • 公共Byte(String s)引发NumberFormatException

每个方法都有一些定义的情况,在这种情况下它可能引发NumberFormatException。例如,当以下情况时,公共静态int parseInt(String s)引发NumberFormatException

  • 字符串s为null或s的长度为零。

  • 如果String包含非数字字符。

  • String的值不表示Integer。

例1

public class NumberFormatExceptionTest {

   public static void main(String[] args){

      int x = Integer.parseInt("30k");

      System.out.println(x);

   }

}

输出结果

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)


如何处理NumberFormatException

我们可以通过两种方式处理NumberFormatException 

  • 在可能导致NumberFormatException的代码周围使用try and catch块。

  • 处理异常的另一种方法是使用throws关键字。

例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);

   }

}

在上面的示例中,方法intParsingMethod()将Integer.parseInt(“ 30k”  )引发的异常对象抛出到其调用方法,在本例中为main() 方法。

输出结果

We can catch the NumberFormatException

以上是 如何在Java中处理NumberFormatException(未选中)? 的全部内容, 来源链接: utcz.com/z/338578.html

回到顶部