如何在java中捕获这种异常?如何在Java的函数中抛出用户定义的异常并在别处捕获它们?
throw new Exception("Error") {
// Here is what makes the exception user-defined.
public String getMessage() {
return "Here is your user-defined exception!";
}
};
如何在java中捕获这种异常?如何在Java的函数中抛出用户定义的异常并在别处捕获它们?
throw new Exception("Error") {
// Here is what makes the exception user-defined.
public String getMessage() {
return "Here is your user-defined exception!";
}
};
你所做的是创建一个Exception
的匿名子类。你可以捕捉它的唯一方法是赶上Exception
。
提示:你在做什么是毫无意义的。如果用户定义的例外是正常(非匿名)类,则只有有用。你必须能够名称他们赶上他们......如果你不能捕捉到一个异常(独立于它的超类),那么它没有任何用处。
也许你正在尝试做的可能是通过声明异常为私有静态嵌套类。这样可以防止它被抓到封闭类之外。但它仍然可以被命名并因此被捕获到在封闭类中声明的方法。
因为这是一个匿名子类异常的,它没有名字,所以你只能用一般的catch子句捕获它:
catch (Exception e) {
}
有时使用匿名类实例是不一个好主意。这是一个很好的例子,其中匿名类应该使用而不是。你应该定义一个常规的自定义异常类,这将允许你有一个特定的catch子句。
Ooops我偶然编辑了你的答案。回滚。抱歉。 –
你可否详细说明“在别处抓住他们?”? – Akshay
这不是用户定义的异常。 –
@SureshAtta - 是的。这不是一个>>有用的<<用户定义的异常。 –