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

异常处理

 
阅读更多

摘自疯狂Java讲义

异常处理

Try{   //try块,它里面放置可能引发异常的代码块

 

}catch(Exception e){   //catch块用于处理这种类型的代码块

 

}finally{    //用于回收在try块里打开的物理资源

 

}

 

throws:关键字主要在方法签名中使用,用于表明该方法可能抛出的异常。声明抛出异常的思路,当前方法不知道应该如何处理这种类型的异常,该异常应该由上一级调用者处理,如果main方法也不知道如何黑醋栗这种类型的异常,也可以使用throws声明抛出异常,该异常将交给JVM处理。JVM对异常的处理方法是:打印异常跟踪栈信息,并中止程序运行。

         子类方法中声明的异常类型应该是父类方法 抛出的异常类型的子类或相等,子类方法中不允许比父类方法声明更多异常。

throw 用于抛出一个实际的异常。

 

非正常情况 继承Throwable1.异常(Exception

                            2.错误(Error

 

异常:1.checked异常:可以在编译阶段被处理的异常

           2.Runtime异常:无需处理

 

通常情况下,try块被执行一次,则try块后只有一个catch块会被执行,绝不可能有多个catch块被执行.

进行异常捕获时,一定要记住先捕获小的异常,再捕获大的异常。

 

异常链:业务层访问数据持久层,捕获到持久层错误,不能直接抛给业务层,合适做法是,程序先捕获原始的异常,然后抛出一个新的业务异常,新的业务异常包含了对用户的提示信息,这种处理方式称为异常转译。

 

 

异常处理规则:

         成功的异常处理应该达到如下四个目标:

                   使程序代码混乱最小化。

                   捕捉并保留诊断信息。

                   通知合适的人员。

                   采用合适的方式结束异常活动。

<!--[if !supportLists]-->1.  <!--[endif]-->不要过度使用异常

过度使用异常的表现:

<!--[if !supportLists]-->a.       <!--[endif]-->把异常和普通错误混淆在一起,不再编写任何错误处理信息,而是以简单地抛出异常来代替所有错误处理。

<!--[if !supportLists]-->b.       <!--[endif]-->使用异常处理来代替流程控制。

         2.不要使用过于庞大的try

         3.避免使用Catch All语句

         4.不要忽略捕获到的异常

分享到:
评论

相关推荐

    Spring Cloud Gateway的全局异常处理

    Spring Cloud Gateway的全局异常处理 Spring Cloud Gateway中的全局异常处理不能直接用@ControllerAdvice来处理,通过跟踪异常信息的抛出,找到对应的源码,自定义一些处理逻辑来符合业务的需求。 网关都是给接口做...

    C#异常处理总结及简单实例

    C#异常处理总结及简单实例 一、异常处理的理解? 异常处理是指程序在运行过程中,发生错误会导致程序退出,这种错误,就叫做异常。 因此处理这种错误,就称为异常处理。 二、异常处理如何操作? C# 异常处理时建立在...

    异常处理.ppt异常处理.ppt异常处理.ppt异常处理.ppt异常处理.ppt

    异常处理.ppt异常处理.ppt异常处理.ppt异常处理.ppt异常处理.ppt异常处理.ppt

    两数计算+异常处理

    课程作业,实现两数计算及其异常处理,异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。 Java中的异常可以是函数...

    精讲RestTemplate自定义请求失败异常处理.docx

    在开始进行自定义的异常处理逻辑之前,我们有必要看一下异常处理的默认实现。也就是:为什么会产生上面小节提到的现象? ResponseErrorHandler是RestTemplate请求结果的异常处理器接口 o接口的第一个方法hasError...

    异常处理 异常处理 异常处理

    关于异常处理的word文档 关于异常处理的word文档 关于异常处理的word文档

    Springboot全局异常处理demo.zip

    Springboot全局异常处理demo 项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的...

    MySQL定义异常和异常处理详解

    主要为大家详细介绍了MySQL定义异常和异常处理,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    C和C++中的异常处理

    2. Microsoft 对异常处理方法的扩展 3. 标准 C++异常处理的基本语法和语义 4. 实例剖析 EH 5. C++的 new 和 delete 操作时的异常处理 6. Microsoft 对于的实现版本中的异常处理 7. 部分构造及 placement delete 8. ...

    C++ 异常处理 C++ 异常处理

    C++ 异常处理 C++ 异常处理C++ 异常处理C++ 异常处理C++ 异常处理C++ 异常处理C++ 异常处理C++ 异常处理

    java异常处理java异常处理

    java异常处理java异常处理java异常处理java异常处理java异常处理java异常处理java异常处理java异常处理java异常处理java异常处理java异常处理java异常处理java异常处理

    c/vc++/MFC异常处理/结构化异常处理 浅析

    c/vc++/结构化异常处理 浅析 C语言异常处理 C++语言异常处理 异常处理函数 MFC异常处理 结构化异常处理

    spingmvc+mybatis+统一异常处理机制

    统一异常处理会区分前端是否ajax请求,自动返回json数据格式,要求开发人员在处理ajax请求时统一封装成一个对象返回,以符合代码统一规范。 此工程在idea环境编写,导入请自己新建工程手工复制代码导入。

    易语言线程结构异常处理

    易语言线程结构异常处理源码,线程结构异常处理,SE保护内存读写,除0异常,十到十六,到十六进制文本,汇编_写到内存,指针到EXCEPTION_RECORD结构,指针到CONTEXT结构

    ADS异常处理.pptADS异常处理.pptADS异常处理.ppt

    ADS异常处理.pptADS异常处理.pptADS异常处理.ppt

    ARM异常处理机制ARM异常处理机制

    ARM异常处理机制ARM异常处理机制ARM异常处理机制ARM异常处理机制ARM异常处理机制ARM异常处理机制ARM异常处理机制ARM异常处理机制ARM异常处理机制

    详解SpringCloud Finchley Gateway 统一异常处理

    主要介绍了详解SpringCloud Finchley Gateway 统一异常处理,非常具有实用价值,需要的朋友可以参考下

    工作流系统异常处理实现方法

    中的异常处理问题显得尤为突出[1-3]。传统上将异常处理包含于正常流程中的方法不仅不能 有效的处理各类异常,同时使得整个系统流程复杂化;而完全的人工参与也使得异常处理过 程效率低下,形式极不规范。所以,工作...

    第7章 java异常处理

    第7章 java异常处理

    SQLserver存储过程异常处理.txt

    SQLserver存储过程异常处理

Global site tag (gtag.js) - Google Analytics