但是在下面的程序中,当在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
答案 0 :(得分:5)
已检查的例外 只需要throws
条款。
答案 1 :(得分:3)
请注意以下几行:
public static void main(String Args[]){
try[
try
有一个括号,而不是括号。可能是你编译程序失败了,然后重新运行旧的类文件。
答案 2 :(得分:2)
因为NullPoinerException
是RuntimeException
。它不需要throws
子句。
答案 3 :(得分:0)
无法得到你的意思是默认处理程序。
抛出execption时throw new NullPoinerException ("demo");
这是由围绕它的try catch块捕获的。
Catch块依次抛出异常,这是由main中的try catch块捕获的。
希望这有帮助。
评论后编辑:NullPoinerException异常也是未经检查的异常,因此无需提及为抛出。