jva中的异常

异常

  概述:即非正常情况,通俗地说,异常就是程序出现的错误

异常的分类(Throwable)

  • 顶层父类(Thromable)
  • 异常(Exception)

    合理的应用程序可能需要捕获的问题  :举例:空指针异常(NullPointerException)

  • 错误(error)

    合理的应用程序不应该试图捕获的问题:举例:内存不足(StackOverFkowError)

异常的处理方式

  JVM默认的异常处理方式:在控制台打印错误信息,并终止程序

开发中异常的处理方式

  • try.....catch(finally):捕获,自己处理

   格式:

      try{

        //尝试执行的代码(有可能出现问题的代码)

        }eatch(Exception c){

        //出现问题后的解决方案

        }finally{   //即使在try,eatch中有return,flnally中的代码也会执行

        //写在这里的代码正常情况下一定会执行,一般是用来释放资源

        }

   执行流程:

      先执行 try{}中的内容,看是否有问题(异常)

      没有:直接执行finally语句中的内容

      有:跳转到eatch(){}语句中开始执行,再执行finally()语句中的内容

   特点: 处理完异常,程序会继续执行

  • throws:抛出,交给调用者处理

    格式:直接在方法名后面写就可以了:

    public void 方法名() throws Exceptoin(异常类型){

    }

  栗子:

public class YiChang {
    public static void main(String[] args) throws Exception {
        //需求:调用show()
        //因为show()方法已经抛出了一个异常,作为调用着(mian函数)必须处理这个异常
        //方案一:接着抛    mian函数继续抛出异常,抛给JVM来进行处理
        //方案二:采用try,ratch处理
//        show();  //直接调用方法会报错
        try{
            show();
        }catch (Exception e){
            System.out.println("方法报错啦");
        }

        System.out.println("你看我执行了吗?");
    }
    public static void show() throws Exception{
        int a = 10/0;
        System.out.println("a : " + a);
    }
}
原文地址:https://www.cnblogs.com/zxy6/p/14267487.html