美文网首页
java异常

java异常

作者: 以宇宙为海的蓝鲸 | 来源:发表于2019-07-24 20:54 被阅读0次
  • 什么是异常?

不正常的情况就是异常。

默认情况下,JVM会处理报错的异常,执行步骤如下。

  • 暂停程序

  • 报错,返回错误位置和原因。

注意:尽量不要让JVM处理异常。

  • 处理异常的方法

    java自身提供了完善的异常处理机制,可以帮助我们解决问题。

    这里主要介绍三种:

    try-catch;try-多重catch;try-多重catch-finally。

    try-catch:

    语法结构: try{ 有可能出现异常的代码块 }catch(声明异常){ 异常解决办法 }

    执行顺序: 1,执行try块中的内容 2,如果try块中内容出现异常,执行catch块 3,匹配catch中声明的异常信息 ,如果匹配上,则执行catch中的代码 4,继续执行后续代码 5,如果catch中的异常信息没有匹配到 那么此时交由jvm处理该异常。

    注意:catch中的类型一定要注意,能够捕获到try块中实际出现的异常信息, 如果忘记了具体的异常信息可以通过使用Exception去捕获异常信息。

    try-多重catch:

    语法结构:

    try{ 有可能出现异常的代码块 }catch(声明异常1){ 异常解决办法 }catch(声明异常2){

    异常解决办法

    }。。。{

    }

    try-多重执行顺序:

    1. 执行try块中的内容
    1. 如果try块中的内容出现异常,new出异常
    1. 逐一匹配catch块中,异常信息,匹配上则执行该catch块,执行完毕,整个try-多重catch结束。
    1. 如果匹配不是则交由JVM处理。

    注意:在多重catch中,一般在最后一个catch语句中会编写一个exception,用来捕获可能未被识别的信息。不要在第一个catch中编写父类异常,会导致隐藏掉所有的子类异常。

    try-多重catch-finally:

    语法结构:

    try{ 有可能出现异常的代码块 }catch(声明异常1){ 异常解决办法 }catch(声明异常2){

    异常解决办法

    }。。。{

    }finally{

    //用于存放关闭资源的代码

    }

    执行顺序与try-多重catch相同,finally一定会执行。

    注意:终结finally的唯一办法,编写System.exit();结束虚拟机,但一般不这么做。

  • 异常对象的常用方法

    toString;当前异常类型及原因描述。

    printStackTrace:打印堆栈信息,原因描述,异常位置和异常类型。

    getMessage:异常原因。

  • throw,throws

throw:声明当前代码块的异常信息,并将之抛出给调用者。对于调用者而言,会使用try-catch捕获异常,如果

不使用try-catch捕获异常,则会由JVM处理异常。throw会导致程序中断,后续代码不再执行。

throws:在方法外对外抛出某个异常,由调用者解决异常。main方法中抛出的异常会全部交给JVM解决。

throw抛出异常,是异常解决的一种方法,定义在方法的外部,在形式参数后可以抛出多个异常,通过“;”分隔。

throw:定义在方法的内部,声明可能出现的异常。

一般将throw和throws一起使用。

  • 自定义异常

为什么要自定义异常?

JDK中提供的异常信息不满足使用。

如何自定义异常?

  1. 声明一个自定义异常类。

  2. 继承Exception

  3. 编写两个构造器,一个为空,一个带字符串。

  • Throwable

所有异常的父类。

Throwable.png

相关文章

网友评论

      本文标题:java异常

      本文链接:https://www.haomeiwen.com/subject/efafrctx.html