在Java中,默认处理程序没有捕获我们抛出的异常?对

时间:2011-06-13 05:17:24

标签: java exception-handling

但是在下面的程序中,当在catch语句中重新抛出异常时,没有throws子句,没有错误吗? 怎么样?

Class Throwdemo {
  static void demoproc(){
    try{
        throw new NullPoinerException ("demo");
    }catch(NullPointerException e) {
        System.out.println("Caught inside demoproc."); 
        throw e;
    }
  }
  public static void main(String Args[]){
    try[
        demoproc();
    }catch(NullPointerException e) {
            System.out.println("Recaught : " + e);
    }
}
}

输出

Caught inside demoproc.
Recaught : java.lang.NullPointerException: demo

4 个答案:

答案 0 :(得分:5)

已检查的例外 只需要throws条款。

答案 1 :(得分:3)

请注意以下几行:

public static void main(String Args[]){
    try[

try有一个括号,而不是括号。可能是你编译程序失败了,然后重新运行旧的类文件。

答案 2 :(得分:2)

因为NullPoinerExceptionRuntimeException。它不需要throws子句。

答案 3 :(得分:0)

无法得到你的意思是默认处理程序。

抛出execption时
throw new NullPoinerException ("demo");

这是由围绕它的try catch块捕获的。

Catch块依次抛出异常,这是由main中的try catch块捕获的。

希望这有帮助。

评论后编辑:NullPoinerException异常也是未经检查的异常,因此无需提及为抛出。