首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

对于parseInt(String )的NumberFormatException怎么进行更细的捕获

2012-12-21 
对于parseInt(String )的NumberFormatException如何进行更细的捕获使用Integer.parseInt(String str)时,在

对于parseInt(String )的NumberFormatException如何进行更细的捕获
使用Integer.parseInt(String str)时,在很多情况下都会抛出NumberException,当我想知道是因为
参数超过了Integer.MAX_VALUE或者Integer.MIN_VALUE的原因,还是由于输入了非法的字符出现的异常
应该如何捕获呢?请各位帮忙看看,十分谢谢
[最优解释]

引用:
引用:自定义异常类不就完了吗

问题解决了,是用一个大于int类型的数去接收parseInt的结果number,然后判断number是否在
Integer.MAX_VALUE或者Integer.MIN_VALUE区间之内,然后抛出自定义越界异常,不过对于这个
接收number的类型是否应该越大越好呢?我定义为double


可以用 BigInteger 类:



BigInteger max = BigInteger.valueOf(Integer.MAX_VALUE);
BigInteger min = BigInteger.valueOf(Integer.MIN_VALUE);

BigInteger number = new BigInteger("1234567890");

boolean outOfRange = number.compareTo(max) > 0 
[其他解释]
自定义异常类不就完了吗
[其他解释]
引用:
自定义异常类不就完了吗


问题解决了,是用一个大于int类型的数去接收parseInt的结果number,然后判断number是否在
Integer.MAX_VALUE或者Integer.MIN_VALUE区间之内,然后抛出自定义越界异常,不过对于这个
接收number的类型是否应该越大越好呢?我定义为double

[其他解释]
上面表述有误,定义了一个double类型的数据,不是使用Integer.parseInt(String)了,而是使用了Double.parseDouble(String)
[其他解释]
一个是NumberFormatException的异常是str中不能编译成int类型。而另一个是越界的Exception,你一看就知道了。希望能够帮到你
[其他解释]
 number.compareTo(min) < 0;

热点排行