如何在java的函数中抛出用户定义的异常并将其捕获到其他地方?

时间:2017-07-19 06:37:47

标签: java exception

我怎样才能在java中捕获这种异常?

throw new Exception("Error") {
    // Here is what makes the exception user-defined.
    public String getMessage() {
        return "Here is your user-defined exception!";
    }
};

2 个答案:

答案 0 :(得分:1)

由于这是Exception的匿名子类,因此它没有名称,因此您只能使用常规catch子句捕获它:

catch (Exception e) {

}

有时使用匿名类实例不是一个好主意。这是匿名类应该的地方的一个很好的例子。您应该定义一个常规的自定义异常类,这将允许您拥有特定的catch子句。

答案 1 :(得分:1)

您所做的是创建Exception的匿名子类。你能抓住它的唯一方法就是抓住Exception

提示:你所做的事情毫无意义。如果用户定义的异常是普通(非匿名)类,则它们只是有用的。你必须能够命名来捕获它们......如果你不能捕获异常(独立于它的超类)那么它就没有任何意义。

也许您尝试做的事情可能是通过将异常声明为私有静态嵌套类来完成的。这可以阻止它被封闭在课外。但它仍然可以被命名,因此被捕获在封闭类中声明的方法。