请问下面两个代码块中哪一个更好?
catch (MyException e) {
throw new MyException ("Error processing request", e);
}
或者
catch (MyException e) {
throw e;
}
请问下面两个代码块中哪一个更好?
catch (MyException e) {
throw new MyException ("Error processing request", e);
}
或者
catch (MyException e) {
throw e;
}
catch (MyException e) {
// May be perform some clean-up activity and throw
throw new MyException ("Error processing request", e);
}
保留内部异常,我没有问题。虽然,我认为捕获然后重新抛出不太合理。肯定更好的做法是抛出一个自定义异常?
StackTrace
,没有问题。但它应该是有意义的,捕获和抛出相同的Exception
没有任何意义。如果您想在调用方法时包含任何其他有用信息,可以像第一种选项中那样包装原始异常。
第一个原因是,第二种方法(不进行任何处理重新抛出相同的异常)是无用的。
通常情况下,您需要在项目开始时定义异常处理。您将使用已检查还是未检查的异常?您将使用标准异常还是自定义异常?您将如何使用异常继承?您将在哪里处理(记录)异常?传递异常的信息是什么。一旦回答了这些问题,就可以开始构建您的API了。