0

根据这篇文章,可以从 catch 块中抛出新的 Exception 对象,而无需指定“throws”或不将此 throw 包含在另一个 try/catch 块中。

但是当我尝试在 Eclipse Juno 中执行以下操作时:

public class Try {

class Trial extends Exception{}

public static void main(String s[]){
    try{
    }catch(Exception e){
            throw  new Trial();
    }
}

}

它显示错误消息并要求我在“throw new Trial();”周围添加 throw 或另一个 try/catch。它是依赖于 JVM 还是我错过了什么?

4

2 回答 2

5

同一篇文章说

这是一个未经检查的异常:我们不需要声明我们抛出它,调用者也不需要显式处理它。如果出现这样的异常,就会被未抓到的“扫地出门”

所以异常是未经检查的,它扩展RuntimeException

于 2013-08-07T09:59:27.500 回答
1

您正在抛出一个已检查的异常,编译器只是抱怨,因为您的方法签名另有说明

public static void main(String s[]) throws Trial

应该修复它,如果你打算从 main 中扔掉它。

于 2013-08-07T10:00:52.087 回答