我正在开发一个自定义Exception类,其中具有以下构造函数:
public class UserException extends Exception
{
string message;
public UserException() {
super();
}
public UserException(String message, Throwable cause)
{
super(message, cause);
this.cause = cause;
this.message = message;
}
}
然后创建一个新的自定义异常,如下所示:
private Camera.PreviewCallback SetPreviewCallBack() throws UserException {
.......
// Something went wrong
throw new UserException("Something failed.", new Throwable(String.valueOf(UserExceptionType.CaptureFailed)));
}
但是当我插入
throw new UserException(...)
时,它告诉我用try/catch
包围它!那不是主意,不是吗?我想在需要抛出自定义异常时抛出这些异常,而不必用更多的new Exceptions
子句替代try/catch
。所以,我做错了什么?我的误会是什么?
最佳答案
除了Eran的答案外,您还可以使自定义Exception扩展RuntimeException
,而无需捕获它。