如何在Java中处理NumberFormatException(未选中)?
该 NumberFormatException的 是一个未经检查的 异常被抛出 parseXXX()方法时,他们无法格式 (转换)一个字符串转换成数。
该 NumberFormatException异常 可以由许多被抛出方法/构造中的类的java.lang 包。以下是其中一些。
公共静态intparseInt(Strings)引发NumberFormatException
公共静态字节valueOf(Strings)引发NumberFormatException
公共静态字节parseByte(Strings)引发NumberFormatException
公共静态字节parseByte(Strings,intradix)抛出NumberFormatException
公共Integer(Strings)引发NumberFormatException
公共Byte(Strings)引发NumberFormatException
每个方法都有一些定义的情况,在这种情况下它可能引发NumberFormatException。例如,当以下情况时,公共静态intparseInt(Strings)引发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的代码周围使用tryandcatch块。
处理异常的另一种方法是使用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