`
qqbwww
  • 浏览: 60171 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java 异常处理最佳实践

阅读更多

 


1.API设计最佳实践:
当在检查异常和非检查异常中摇摆时,自问一下:客户端代码在异常发生时能做什么?
如果客户端代码什么都做不了:那么生成一个无需捕获的异常。
如果客户端代码能从异常中获取有效信息恢复程序状态,则使用检查异常。
减少自定义异常可以减少异常轨迹跟踪,作者不推荐自定义异常。

2.保护封装
不要让特定异常上传的高层。
比如SQL异常就不要传播到BO层。处理方法有二:
1.转换SQLException到另一种检查异常,如果客户端代码希望从异常中恢复的话。
2.不希望恢复的话就使用非检查异常。
处理方式
public void dataAccessCode(){
    try{
        ..some code that throws SQLException
    }catch(SQLException ex){
        throw new RuntimeException(ex);
    }
}
要优于
public void dataAccessCode(){
    try{
        ..some code that throws SQLException
    }catch(SQLException ex){
        ex.printStacktrace();
    }
}

3.不要尝试创建新的自定义异常如果它们对客户端代码而言不包含有用信息的话。
对于没有添加有用方法或属性的异常,还是使用标准异常而不是自定义异常比较好。


4。为异常写文档说明:
可以使用Javadoc's @throws标签为异常写文档说明。为了放置文档和实现不统一,可以为异常抛出写单元测试
public void testIndexOutOfBoundsException() {
    ArrayList blankList = new ArrayList();
    try {
        blankList.get(10);
        fail("Should raise an IndexOutOfBoundsException");
    } catch (IndexOutOfBoundsException success) {}
}



使用异常的最佳实践:
1.总是清理你使用过的资源。
public void dataAccessCode(){
    Connection conn = null;
    try{
        conn = getConnection();
        ..some code that throws SQLException
    }catch(SQLException ex){
        ex.printStacktrace();
    } finally{
        DBUtil.closeConnection(conn);
    }
}

class DBUtil{
    public static void closeConnection
        (Connection conn){
        try{
            conn.close();
        } catch(SQLException ex){
            logger.error("Cannot close connection");
            throw new RuntimeException(ex);
        }
    }
}

2.不要为流程控制使用异常
3.不要挂起或者忽略异常
4.不要捕获顶级异常
在捕获Excepiton时,因为RuntimeException是Exception的子类,它就可能被忽略。
5.只记录一次异常
分享到:
评论

相关推荐

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

    Java异常处理的9个最佳实践涵盖了开发者在进行Java编程时应当遵循的一系列规则和方法,以确保代码的健壮性和可维护性。异常处理是编程中的一个重要部分,它能够帮助我们更有效地管理和响应程序运行时的错误情况。 ...

    Java异常处理的最佳实践

    本文主要探讨了Java异常处理的最佳实践,包括理解异常的类型、何时何地使用异常,以及如何有效地处理它们。 首先,Java异常分为两种主要类型:Checked异常和Unchecked异常。Checked异常,如IOException和...

    Java异常处理和最佳实践(含案例分析).pdf

    "Java异常处理和最佳实践(含案例分析)" 本文将深入探讨Java中的异常处理机制,讨论如何正确地处理Java异常,避免常见的错误和best practice。通过本文的学习,您将了解Java异常的分类、为什么finally块中的代码...

    Java编程异常处理最佳实践【推荐】

    Java编程异常处理最佳实践【推荐】 Java中的异常处理是非常重要的,特别是在大型项目中,异常处理机制的设计和实现将直接影响系统的稳定性和可靠性。 Java中的异常处理机制可以分为两大类:Checked Exception和...

    Java异常是Java提供的一种识别及响应错误的一致性机制,Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序

    **Java异常处理最佳实践** 1. 清理资源:使用finally或try-with-resource确保资源关闭。 2. 明确异常:优先捕获并处理最具体的异常,然后才是更一般的异常。 3. 文档说明:异常应在API文档中明确说明,以便其他...

    Java异常面试题(2020最新版).pdf

    Java异常面试题(2020最新版) Java异常架构: Java异常机制是Java提供的一种识别及响应错误的一致性机制。Java异常机制可以使程序中...同时,了解Java异常处理最佳实践也可以帮助开发者写出更加健壮和高效的代码。

    Java异常处理体系

    这篇博文链接(已提供但无法直接访问)可能详细解释了Java异常处理的基本概念、机制以及最佳实践。 Java异常处理的核心在于五个关键字:try、catch、finally、throw和throws。这些关键字帮助程序员构建了一个框架,...

    详解Java异常处理最佳实践及陷阱防范

    本文将深入探讨Java异常处理的最佳实践以及如何避免常见的陷阱。 首先,异常在Java中被分为两大类:Error和Exception。Error是所有异常的顶级父类,通常表示系统级的严重错误,如内存溢出(OutOfMemoryError)。...

    Java异常处理终结篇——如何进行Java异常处理设计 - 望远的个人页面 - 开源中国社区1

    Java异常处理设计是Java编程中一个至关重要的环节,它直接影响到程序的稳定性和可维护性。在Java中,异常处理是通过try-catch-finally语句块来实现的,主要涉及两大类异常:编译时异常(Checked Exception)和运行时...

    Java异常处理总结

    ### Java异常处理总结 #### 一、Java异常的基础知识 在Java编程中,异常处理是一项极其重要的技术。异常处理能够帮助开发者优雅地处理程序运行时遇到的问题,避免程序崩溃,并提供给用户友好的反馈信息。 **什么...

    高效java异常处理机制

    通过遵循上述最佳实践,开发者可以编写出更健壮、可维护的Java代码,有效地利用Java异常处理机制来提高程序的稳定性。同时,阅读并理解"Effective Java Exceptions"文档可以帮助进一步深化对Java异常处理的理解。

    java异常处理ppt

    7. **异常处理的最佳实践**: - 尽量避免在`catch`块中只打印堆栈跟踪,而应提供有用的错误信息或采取适当的恢复措施。 - 使用多个`catch`块来分别处理不同类型的异常,以便更精确地处理问题。 - 不要忽略异常,...

    Java异常处理机制:原理、实践与最佳实践

    Java的异常处理机制为程序的错误处理提供了一种结构化和可预测的方法。通过合理使用try、catch、finally、throw和throws关键字,...掌握异常处理的最佳实践,可以帮助我们更有效地管理和响应程序运行时的错误情况。

    java中的异常处理

    六、异常处理最佳实践 1. 尽量避免在finally块中进行复杂的操作,因为这可能导致新的异常。 2. 不要忽视异常,即使异常看起来不严重,也应适当地处理或记录。 3. 使用具体异常类型,而不是过于宽泛的Exception类,...

    Java异常处理Java异常处理.doc

    Java异常处理是编程中至关重要的一个部分,它用于管理和恢复程序执行过程中可能出现的错误或异常情况。当程序遇到无法预见的问题,如文件未找到、网络连接中断或计算溢出等,Java通过异常处理机制来优雅地处理这些...

    Java 的异常处理.pdf

    Java的异常处理是编程中一个重要的概念,它用于...开发者需要根据程序的需求和逻辑,选择最佳的异常处理方式,以确保程序的可靠性和效率。同时,理解异常处理的原理和实践,能够帮助我们编写更健壮、更易于维护的代码。

    Java-Java异常处理教程

    9. **异常处理最佳实践**:- 不要忽略异常,即使你认为它们不太可能发生。- 尽可能提供详细的异常信息,如异常消息和堆栈跟踪。- 使用适当的异常类型,不要过度使用`Exception`类。- 避免在`finally`块中抛出新的...

    Java异常处理教程

    本教程将深入探讨Java异常处理的基础、原则以及最佳实践。 一、异常的分类 Java中的异常类层次结构主要基于`java.lang.Throwable`类,它有两个主要子类:`Error`和`Exception`。`Error`通常表示系统级的错误,如...

    深入理解java异常处理机制Java开发Java经验技巧共

    这篇19页的PDF文档《深入理解java异常处理机制Java开发Java经验技巧共》可能涵盖了Java异常处理的基本概念、最佳实践以及高级用法。在Java中,异常处理通过五个关键字来实现:try、catch、finally、throw和throws。 ...

Global site tag (gtag.js) - Google Analytics