阅读 745

Java 异常处理的 9 个最佳实践

原文链接: www.oschina.net

8、不要记录日志和抛出错误

这可能是该文章中最常被忽略的最佳实践。 你可以找到很多的其中有一个异常被捕获的代码片段,甚至是一些代码库,被记录和重新抛出。


在发生异常时记录异常可能会感觉很直观,然后重新抛出异常,以便调用者可以适当地处理异常。但它会为同一个异常重复写入多个错误消息。

17:44:28,945 ERROR TestExceptionHandling:65 - java.lang.NumberFormatException: For input string: "xyz "
Exception in thread "main " java.lang.NumberFormatException: For input string: "xyz "
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Long.parseLong(Long.java:589)
at java.lang.Long.(Long.java:965)
at com.stackify.example.TestExceptionHandling.logAndThrowException(TestExceptionHandling.java:63)
at com.stackify.example.TestExceptionHandling.main(TestExceptionHandling.java:58)复制代码

附加消息也不会添加任何信息。正如在最佳实践#4中所解释的那样,异常消息应该描述异常事件。 堆栈跟踪告诉你在哪个类,方法和行中抛出异常。

如果你需要添加其他信息,则应该捕获异常并将其包装在自定义的信息中。 但请务必遵循最佳实践9。


所以,只捕获你想处理的异常。 否则,在方法签名中指定它,并让调用者处理它。

文章分类
后端
文章标签