`
Tony_Lee-S
  • 浏览: 82802 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

何时使用异常

阅读更多
异常处理将错误处理代码从正常的程序设计任务中分离出来,这样,可以使程序更易修改。但是,应该注意,由于异常需要初始化新的异常对象,需要从调用栈返回,而且还需要沿着方法调用链来传播异常以便找到它的异常处理器,所以,异常处理通常需要更多的时间和资源。

异常出现在方法。如果想让该方法的调用者处理异常,应该创建一个异常对象并将其抛出。如果能在发生异常的方法中处理异常,那么就不需要抛出或使用异常。

一般来说,一个项目中多个类都会发生的共同异常应该考虑作为一种异常类。对于发生在个别方法中的简单错误最好进行局部处理,无须抛出异常。

在代码中,什么时候应该使用try-catch块呢?当必须处理不可预料的错误状况时应该使用它。不要用try-catch块处理简单的、可预料的情况。例如,下面的代码:
try{
  System.out.println(refVar.toString());
}
catch(NullPointerException ex){
   System.out.println("refVar is null");
}

最好用以下代码代替:
if(refVar != null)
   System.out.println(refVar.toString());
else
   System.out println("refVar is null");

哪些情况是异常的,哪些情况是可预料的,有时是很难判断的。但有一点要把握住,不要把异常处理用途简单的逻辑测试。
分享到:
评论

相关推荐

    实验7(异常).zip

    最后,理解何时使用异常处理以及如何避免滥用是至关重要的。异常处理应主要用于处理程序中的非正常情况,而不是作为常规流程控制。过度使用异常可能导致性能下降,因此在可以预见的错误情况下,优先选择返回错误码或...

    Exception C++系列

    理解何时使用异常和何时不使用是成为优秀C++开发者的必备技能。 通过深入学习"Exception C++"系列,开发者不仅可以掌握C++的异常处理机制,还能提升对错误处理、资源管理、代码质量等核心编程原则的理解,从而编写...

    Java異常研究報告(尚未完成)

    本报告将深入探讨Java异常的处理机制、何时使用异常,以及异常体系结构。 首先,Java中的异常是通过`Throwable`类来表示的,它是所有错误和异常的根类。`Throwable`有两个直接子类:`Error`和`Exception`。`Error`...

    Effective-Java-2nd-Edition-(May-2008).zip_effective java

    11. **异常处理**:讨论了异常的使用和滥用,提倡正确使用checked异常和unchecked异常,以及何时使用异常链和自定义异常。 12. **并发编程**:书中简要介绍了一些并发编程的最佳实践,如使用并发工具类(如...

    exceptional & more exceptional C++.zip

    例如,Item 33讨论了"何时使用异常,何时不使用异常",引导读者理解C++异常处理机制的权衡,以及如何在程序设计中合理使用异常。Item 42则深入解析了"模板元编程",这是C++中一种强大的预编译时编程技术,用于创建...

    阿里巴巴Java开发手册 (1)_java_

    2. **异常处理**:手册详细规定了何时使用异常、如何捕获异常、异常处理的最佳实践等。提倡正确使用受检异常和非受检异常,避免空指针异常,以及提供有用的异常信息,以提高程序的健壮性。 3. **类型使用**:手册...

    Java.Bug模式详解

    了解何时使用异常,何时应该捕获异常,何时应该重新抛出异常,以及如何编写有用的异常信息,都是编写健壮代码的重要环节。 9. **equals()与hashCode()的协同**:当自定义类覆盖equals()方法时,通常也需要覆盖...

    阿里巴巴Java开发手册1.5.0华山版.zip

    2. **异常处理**:手册详细规定了何时使用异常、如何捕获异常、何时抛出异常等。建议避免使用空异常,正确处理受检异常,并在必要时提供自定义异常。同时,鼓励使用try-with-resources语句以确保资源的及时关闭。 3...

    阿里华为Java编程规范(开发手册)

    异常处理方面,手册可能会规定何时使用异常、如何定义自定义异常、何时抛出异常以及如何妥善处理异常。它强调不要滥用异常,而是将其用于表示程序运行时的不正常情况。 在并发编程中,规范通常会讨论线程安全问题,...

    阿里巴巴Java开发手册20190611.rar

    它规定了何时使用异常、如何抛出和捕获异常,以及异常处理的最佳实践。例如,提倡具体异常具体处理,避免使用笼统的Exception,同时鼓励在finally块中释放资源,确保程序的健壮性。 此外,手册还涉及了并发编程规范...

    来自一位Pythonista的编程经验分享,内容涵盖编码技巧、最佳实践与思维模式等方面 .zip

    还有更多的小细节,比如何时使用异常(异常)、或者怎么给变量起名。那些真正优秀的代码,这是由无数优秀的细节造就的。『Python工匠』这个系列文章,是我的一次小尝试。它专注于分享Python编程中的一些偏『小』的...

    java开发手册-阿里1.6版本(泰山)

    4. **异常处理**:手册详细阐述了何时使用异常、如何正确抛出和捕获异常,以及避免使用空指针异常等常见错误。提倡使用受检异常来处理预期错误,非受检异常用于不可预见的运行时问题。 5. **并发编程**:在多线程...

    python编码规范.zip

    以上只是对Python编码规范的一些基本概述,完整的"python编码规范.doc"文档将提供更详细的信息,包括如何处理复杂的逻辑结构、何时使用异常以及更多的最佳实践。遵循这些规范,可以帮助开发者编写出高质量、易于理解...

    C++异常处理总结

    1. 如果使用普通的处理方式(如ASSERT、return等)已经足够简洁明了,请不要使用异常处理机制。 2. C++异常处理机制比C语言的setjmp、longjmp机制更为优秀,可以处理任意类型的异常。用户可以人为地抛出任何类型的...

    c++最佳编程 1000 多个小技巧 源码

    理解`try`、`catch`和`throw`关键字的用法,以及何时使用异常处理,有助于编写健壮的代码。 6. **C++11及更高版本的新特性**:C++11引入了许多新特性,如lambda表达式、右值引用、自动类型推导(`auto`关键字)、`...

    Effective.C++.中文版(第3版_中文版)

    8. **异常处理**:讨论了何时使用异常,如何编写异常安全的代码,以及异常处理与资源管理的关联。 通过阅读《Effective C++:中文版(第3版)》,读者不仅可以了解到C++语言的深度和广度,还能学习到如何写出更高效、...

    阿里巴巴开发资源手册

    手册中关于异常处理的部分,详细解释了何时使用异常、如何自定义异常、如何正确捕获和处理异常,以及避免滥用异常作为流程控制的手段。这些指导原则有助于编写健壮的代码,防止程序因未处理的异常而崩溃。 四、并发...

    Release异常捕获

    在实际项目中,"异常规范"通常指一套约定,指导开发者如何有效地使用异常处理机制,包括何时抛出异常、何时捕获异常、如何命名异常类、如何编写异常处理代码等。遵循这些规范能够使代码更易读、更易于维护,也有助于...

    More Effective C++ 简体中文版

    理解这些开销可以帮助开发者权衡何时使用异常处理,以及如何优化代码以减少不必要的开销。 以上仅是本书部分章节的简要概述。《More Effective C++》是一本内容丰富、深入浅出的经典之作,对于希望提升自己C++编程...

Global site tag (gtag.js) - Google Analytics