考虑以下示例。这被认为是一种不好的做法吗?
注意:我知道重新抛出异常是可以的,但断言错误呢?
public static main(){
try {
doSmth();
} catch (WhateverException we) {
throw new AssertionError(e.getMessage());
}
}
public static void doSmth() throws WhateverException { }
答案 0 :(得分:2)
如果异常表明对您的代码是致命的情况,那么在响应异常时抛出错误并不是一种坏习惯。但是:
AssertionError
。我的意思是,如果你这样做很好,因为没有人会catch
一个,但你应该考虑只做Error
,这样有人就不会去寻找assert
他们假设的陈述引起了它。throw new AssertionError(we)
。这将保持旧的堆栈跟踪。您可以(也应该)传递自定义消息。