调用异常的调用方法

时间:2011-05-26 04:55:53

标签: java exception exception-handling runtimeexception

我知道方法是否抛出异常Java编译器强制该方法的调用者捕获该异常。

我看到parseInt抛出NumberFormatException

public static int parseInt(String s) throws NumberFormatException {
    return parseInt(s,10);

那么为什么我可以在没有捕获异常的情况下调用它:

String str = "5";
int n = Integer.parseInt(str);

2 个答案:

答案 0 :(得分:8)

由于NumberFormatException延伸RuntimeException - 运行时异常被视为“未选中”,请参阅RuntimeException的{​​{3}}:

  

RuntimeException是的超类   那些可以抛出的异常   在正常运作期间   Java虚拟机。

     

声明输入不需要方法   它的throws子句的任何子类   可能抛出的RuntimeException   在执行方法期间但是   没被抓住。

以下是Javadoc解释此功能的含义及其存在的原因

答案 1 :(得分:0)

重要的区别在于,不需要捕获从Runtime异常扩展的任何Exception,而任何其他Exception都可以。可以随时抛出扩展RuntimeException的异常,例如NullPointerException或ConcurrentModificationException,因此他们不能指望您尝试捕获所有异常。