zoukankan      html  css  js  c++  java
  • 异常及异常的处理机制

    异常处理机制

    异常和异常处理机制

    异常的概念:

          程序在运行时,发生了不可预测的事件,它阻止了程序按照我们程序员的预期

    正常执行!

    程序中的异常:

     

    那么,我们剩下的5行代码九部会执行了

    那么什么是异常的处理机制呢?

    能让程序在异常发生时,按照代码预先设定的异常处理逻辑,针对性地处理异常,     让程序恢复正常并继续执行。

         

    异常的分类和结构图

    所有的异常错误和错误的父类=======Throwtable

     

     Throwable类是Java异常类型的顶层父类,一个对象只有是 Throwable 类的(直接或者间接)实例,他才是一个异常对象,才能被异常处理机制识别。JDK中内建了一些常用的异常类,我们也可以自定义异常。

    异常又分为两种:

     

    运行时异常(RuntimeException:在程序运行期间产生的异常!

    受查异常  checked  Exception:在程序编译期间产生的异常!

    异常处理方式分为两种:(5个关键字)

    1.使用try..catch..finally

    2.使用throw抛出异常和throws声明异常

    3.try不能单独使用,必须和catch或者finally中的其中一个联合使用;

     

    4.如果执行完try并且不发生异常,则接着去执行finally代码块和finally后面的代码;

         如果没有finally代码块,则直接执行catch之后的代码;

     

    1. 如果发生异常,则尝试去匹配对应异常的catch代码块。
    2. .catch后面的括号定义了异常类型和异常参数。
    3. 如果当前try块中发生的异常在后续的所有catch中都没捕获到,则先去执行finally
    4. Java程序中可以声明多个catch

    Finally的使用

    01.无论异常是否发生,finally代码块都会执行;

    02.如果try代码块中出现return,先执行finally代码块之后return

    03.遇到System.exit(int status),不会执行finally代码块

    System.exit(0):正常退出

    System.exit(1或者非0):非正常退出,一般放置在catch代码块中

    04.主要执行一些清理工作,比如关闭流,释放数据库连接资源......

    try==catch===finally的使用规则:

    01.每个代码块中的变量都是局部变量,其他代码块不能访问;

    02.try不能单独使用,必须和catch或者finally联合使用;

    03.catch代码块可以有多个,书写顺序必须是按照异常类型的继承关系从小到大书写;

    04.如果try代码块中出现了return,也是先执行finally之后再执行return

    throwthrows的使用

    异常抛出的分类

    01.系统自动抛出异常

         我们没有使用异常处理机制,系统默认遇到异常时,抛出的异常!

    02.书写语句抛出异常

         使用throw抛出异常,throws声明异常

    throw的使用

    语法:

       throw  new  异常类型([异常提示语句]);

    注意点:

    01.异常类型可以是Exception或者其子类;

    02.一条throw语句只能抛出一个异常;

    03.throw语句只能出现在方法体中

    04.针对于thorw抛出的异常,有两种解决方式

         1.使用try...catch...finally代码块处理异常

         2.使用throws声明异常,把异常告诉调用者

    throws的使用:

    语法:

             方法名称  throws  异常类型1,异常类型2

    注意点:

    01.thows声明在方法名称之后;

    02.throws可以声明多个异常类型,每个类型之间使用 '逗号' 隔开;

    03.throws声明表示当前方法可以不处理异常,而是由方法的调用者处理; 

    04.如果在主函数中使用throws声明异常,则由JVM处理异常!

    异常和异常链的使用

    异常链的概念:

    异常链是指将捕获的异常包装进一个新的异常中,新异常中记录了原始异常的信息。并重新抛出的异常处理方式。

    就好比汽车连撞事件

    自定义异常类

    1.异常类必须是Throwable的子类

    2.定义受查异常,建议继承Exception

     定义运行异常,建议继承RuntimeException

    异常的使用规则:

    1.异常只能用于非正常情况

    2.为异常提供说明文档

    3.尽可能的避免异常,特别是运行时异常

    4.保持异常的原子性

    5.避免过于庞大的try代码块

    6.catch中指定具体的异常类型

    7.不要在catch块中忽略捕获的异常

  • 相关阅读:
    windows 1061
    Golang 编程思维和工程实战
    Apache Tomcat jar Catalina
    MySQL Client/Server Protocol mysql协议
    蚂蚁集团万级规模 k8s 集群 etcd 高可用建设之路
    实习生系列之找实习的途径
    Yahoo!网站性能最佳体验的34条黄金守则
    onselectstart="return false"无法复制文字
    VS2008开发环境中容易遇到的3个问题之解决办法
    实践与交流:“三保险”为世界顶级安全防范软件ESET Nod32 4.0的正常使用“保驾护航”
  • 原文地址:https://www.cnblogs.com/864466244qq/p/9245104.html
Copyright © 2011-2022 走看看