java从变量引发异常
使用java,我想做如下事情
try {
someMethod();
} catch (Throwable x) {
x.setMessage("Some comment " + x.getMessage());
throw x;
}
也就是说,我不知道“someMethod”会抛出什么。不管是什么,我想在消息的开头添加一条消息,然后抛出错误。但是Throwable没有setMessage()方法
我可以通过Class<? extends Throwable> cls = x.getClass();
来获取类类型,但我不确定语法。我做不到
athrow new cls("Comment " + x.getMessage());
我确信当您不知道抛出的可丢弃对象的类时,一定有一种相当简单的方法来实现这一点
# 1 楼答案
您只需捕获
someMethod()
抛出的Exception
,然后用您想要的消息重新抛出它大概
如果需要,还可以创建并抛出选中的异常,如下所示
自定义异常类:
代码:
# 2 楼答案
您可以创建一个自定义的
RuntimeException
并将捕获到的异常包装在其中,而不是捕获Throwable
(这几乎总是一个错误)