ZJU-java进阶笔记 第七周(异常处理)

  1. 异常的定义
    在这里插入图片描述

  2. 捕捉异常范例

try{
    
    
    //可能产生异常的代码
}catch(Type1 id1){
    
    
    //处理Type1异常的代码
}catch(Type2 id2){
    
    
    //处理Type2异常的代码
}catch(Type3 id3){
    
    
    //处理Type3异常的代码
        }

异常捕捉的意义:异常发生,程序也不需要终止
3.

  1. 捕捉到异常对象后可以做什么
  1. String getMessage();
  2. String toString();
  3. void printStackTrace();
public static void main(String[] args){
    
    

        try {
    
    
            k();
        }catch (ArrayIndexOutOfBoundsException e){
    
    
            System.out.println(e.getMessage());//放在异常对象里面的值
            System.out.println(e);//异常类的名字和它的message
            e.printStackTrace();//打印调用堆栈,显示调用关系及发生行号
        }
}

但是肯定是回不去了,而具体的处理逻辑则取决于业务逻辑的需要

  1. 异常抛出
    在catch{}内加throw e;(祈使句,throw)
    效果:就像没捕捉过

  2. 异常声明
    放在可能抛出异常的函数后面,为陈述句,throws

    public static void readFile() throws OpenException{
    
    
        if(open() == -1){
    
    
            throw new OpenException();
        }
}
  1. 什么可以“抛出”?
    任何继承了Throwable类的对象
    Exception类继承了Throwable

  2. 抛出子类异常可以被父类异常捕捉器捕捉到
    万能捕捉器——捕捉任何异常

    catch(Exception e){
    
    
        System.out.println("Caught an exception");
}
  1. 子类中不可以出现比父类更多的异常
    但父类构造器会抛出的异常,子类构造器中一定要有

猜你喜欢

转载自blog.csdn.net/weixin_44997802/article/details/108572590