menbbo

导航

 

异常

什么是异常处理?

当程序出现异常时,将程序控制权交由异常处理机制来处理。

程序错误的分类?

1)编译错误;

2)运行时错误;

3)逻辑错误;

java异常继承体系

 

详图如下:

 

 异常处理方式

1.捕捉异常

public static void main(String[] args) {
        FileInputStream fis = null;
        try{
            fis = new FileInputStream("C:\\Users\\menbbo\\Desktop\\a.txt");
        }catch (IOException e){
            e.printStackTrace();
        }finally {
            try{
                if(fis!=null){
                    fis.close();
                }
            }catch (IOException e){
                e.printStackTrace();
            }
        }
    }
}

 

2.声明异常

    public static void main(String[] args) throws IOException{
        FileInputStream fis = new FileInputStream("C:\\Users\\menbbo\\Desktop\\UnZipController.java");
}

异常与方法重写

子类异常声明的范围不能超过父类声明的范围。

1.父类没有声明异常,子类也不能声明。

2.子类重写的方法中声明的异常类,需要与父类被重写方法中声明的异常类保持一致,或者是父类被重写方法中声明的异常类的子类。

自定义异常

1.为什么要自定义异常?

1)封装

2)快速定位

2.自定义异常类步骤

1)创建类

2)继承Exception或者Exception的子类

3)重写构造方法

public class CustomizeException extends Exception{
    public CustomizeException(){};
    public CustomizeException(String message){
        System.out.println(message);
    }
}

手动抛出异常

手动抛出异常的步骤:

1)找到一个合适的异常类

2)创建这个异常类的对象

3)抛出这个对象

    public void fun()throws IOException{
        throw new IOException();
    }

访问异常信息

堆栈轨迹(stack trace):方法调用过程的列表。

finally回收资源

1.I/O属于物理资源

2.java垃圾回收机制不会回收物理资源,垃圾回收机制只能回收堆内存中对象所占用的内存。

自动关闭资源

多异常捕获

 

异常嵌套

 

 Catch和throw同时使用

 

 

将原始的异常信息保存下来,返还给调用者。

 

posted on 2020-08-29 10:31  menbbo  阅读(178)  评论(0)    收藏  举报