美文网首页
Java-异常

Java-异常

作者: 权游一里 | 来源:发表于2018-05-09 10:06 被阅读0次

    异常,简单点来说,就是程序由于某些问题而不能正常的运行下去。

    异常Exception,与错误Error都有同一个父类Throwable(可抛出)。

    • java.lang.Object
    • java.lang.Throwable
      • java.lang.Exception
      • java.lang.Error
    • Exception(异常)是应用程序中可能的可预测、可恢复问题。一般大多数异常表示中度到轻度的问题。异常一般是在特定环境下产生的,通常出现在代码的特定方法和操作中。在 EchoInput 类中,当试图调用 readLine 方法时,可能出现 IOException 异常。
      Exception 类有一个重要的子类 RuntimeException。RuntimeException 类及其子类表示“JVM 常用操作”引发的错误。例如,若试图使用空值对象引用、除数为零或数组越界,则分别引发运行时异常(NullPointerException、ArithmeticException)和 ArrayIndexOutOfBoundException。
    • Error(错误)表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。例如,当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。

    异常的使用

    代码在执行的过程中,比较理想的状态是没有问题。但是这很难达到,因为你无法保证你说需要的东西就一定能拿到。那出现这种问题的时候,该如何处理?抛出异常,让调用这个api的对象处理。

    if(出现异常情况){
      //抛出异常
      throw new Exception();
    }
    

    既然会抛出异常,那就得处理异常。

    //对可能出现异常的方法进行try-catch包围,进行异常捕获
    try{
      api();
    } catch(Exception e){
      //捕获到异常,进行处理
      ...
    }finally{
      //无论是否捕获到异常,都会处理
      ...
    }
    

    万一当前情况无法处理这个异常,或不想处理,你可以这样做。

    public void run()
      //将异常抛出,不做处理
      throws  Exception {
      //调用可能会出现异常的方法
      ...
    }
    

    Exception是所有异常的父类,抛出Exception是比较笼统的处理,要想针对性的处理,就得使用Exception的子类(太多了,可以自行查看jdk文档)了。

    还有种就是自定义异常了,可以继承Throwable或Throwable的子类。当然,增加了自定义的异常,就需要去维护,看需求再考虑是否增加了。

    相关文章

      网友评论

          本文标题:Java-异常

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