处理java异常的最佳实践

时间:2011-10-18 06:10:30

标签: java exception exception-handling

我开始学习Java并在java中编写我的第一个实用程序类,它们应该投入生产。当它处理异常时我有些迷茫。关于给定代码行中有多少个try语句,是否存在一些大概的数字?

应该有多少代码处理异常...... Eclipse的任何插件?

最佳做法是在try块中包含3-4个语句并捕获异常或在try块中包含10-12行,然后包含2-3个catch语句,捕获不同类型的异常,例如由文件相关或通过我自己的课程或其他一些第三方课程..? 前者对眼睛有点不悦,而且代码膨胀很多......

这种常见的做法是只围绕try块中的代码,这可能会引发异常,或者可以很好地标记周围的代码以及内部尝试说明如何使用文件句柄等。

任何指针..?

3 个答案:

答案 0 :(得分:2)

“最佳做法是在try块中包含3-4个语句并捕获异常或......”

我认为你需要先了解例外情况。

try {
    ...some code that throws exceptions
} catch (Exception ex){
    ex.printStacktrace();
}

以上是处理异常的片段。在异常处理中,我们保留可能在try{}块中生成异常的代码,如果try块中的statemnet生成异常,它将被catch{}块捕获。

是否在try块中包含3-4个语句并捕获异常。 ..不是由RULES确定的。这取决于您的逻辑和程序要求。


以下链接可帮助您清除有关Java例外的基础http://marakana.com/bookshelf/java_fundamentals_tutorial/exceptions.html

有关Java Exceptions的最佳做法,请按照以下文章和QA进行操作。

Best practices for exception management in Java or C#

http://www.wikijava.org/wiki/10_best_practices_with_Exceptions

答案 1 :(得分:1)

从Java教程中查看此跟踪:http://download.oracle.com/javase/tutorial/essential/exceptions/index.html (请注意,这适用于Java 7)。

异常处理的最佳实践无法用代码比例来表达。首先要了解错误,异常和运行时异常之间的重要区别。错误和异常是Throwable层次结构的两个独立分支。运行时异常是不需要声明的特殊异常类型,因为它们不会被普通代码处理。一旦你理解了每个人的作用,你就会正在进行中。

请记住,异常处理不仅仅是最佳实践和常识,还会在某种程度上受到风格和意见的影响。有些人喜欢尽早捕获异常,导致代码中有大量的try-catch块。其他人喜欢尝试包围更多的线条。

如果您可以自由使用JDK 7而不是旧的Java版本,请调查try-with-resources构造和多捕获机制,这两种方法都有助于使异常处理更加优雅并减少代码膨胀。

答案 2 :(得分:0)

我不会算数行。

try catch块作为代码块成功或作为代码块失败(一般情况下)。因此,您可以将“工作单元”视为包含在一个try / catch块中。这与方法的基本定义相同。所以这两个人经常可以在一起。

在一个方法中放置一个try / catch块。

初学者的错误(我认为)是创建大量的单独尝试捕获块,几乎达到每行一个点。通常你只想要一个大的,包含你想要执行的工作单元。