关于JAVA异常类结构的详细讲解(附实例)

内容摘要
2.Throwable是所有异常类的超类.3.当程序可能出现错误(异常)的时候应该使用,使用关键捕获异常进行处理.4.捕获异常结构如下:public void test() {
文章正文

异常.png

2.Throwable是所有异常类的超类.

3.当程序可能出现错误(异常)的时候应该使用,使用关键捕获异常进行处理.

4.捕获异常结构如下:

public void test() {
    int num1 = 10;
    int num2 = 0;
    try {
      System.out.println(num1 / num2);  // try可能出现错误的语句块
    } catch (Exception e) {    // 异常类型 并实例化一个异常类型e,用来对出现的异常进行说明
       e.printStackTrace();       // 如果出现错误执行catch里面内容,否则跳过catch语句块
    } finally {
        System.out.println("永远都会被执行,(system.exit)特殊情况除外,");// 无论是否出现异常都会执行finally语句块
    }
}

5.有的函数声明定义的时候直接抛出了异常,name在调用的时候就需要捕获异常或者继续抛出异常.

public static void main(String[] args) {
        try {
            test();             //调用这个方法就必须捕获异常或者继续抛出异常   
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    //方法定义的时候抛出了异常
    public static void test() throws Exception {
        int num1 = 10;
        int num2 = 0;
        System.out.println(num1 / num2);             
    }

6.自定义异常类,必须继承一个异常的父类:

public class ExceptionTest extends Exception{
    @Override        //这个是注解,表示这是重写的方法
    public void printStackTrace() {
        System.out.println("自己定义的异常类");
        System.out.println("尝试一下如果程序没有出现异常,强制抛出这个自定义异常,可不可以捕获");
    }   
}

7.尝试使用(捕获)自定义的异常类

public class Main {
    public static void main(String[] args) {
        try {
            test();                    //调用这个方法尝试捕获自定义异常
        } catch (ExceptionTest e) {
            e.printStackTrace();    //自定义的异常类重写了printStackTrace这个方法
        }
    }
     //继续往上抛出异常
    public static void test() throws ExceptionTest{
        throw new ExceptionTest(); //强制产生一个自定义的异常并往上抛
    }   
}
代码注释
[!--zhushi--]

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!