Java-SE Day6

Java 异常

Java 把异常当作对象处理,并定义一个基类java.lan.Throwable 作为所有异常的超类

异常分为两大类 : ErrorException

**Error **类对象由 JVM 生成并抛出,大多数与代码编写者所执行操作无关

Exception 有个非常重要的子分支:RuntimeException (运行时异常) ,这些异常一般由程序逻辑错误引起


捕获和抛出异常

捕获多个异常中,从小到大进行捕获

异常处理5个关键字 : try、catch 、finally 、 throw、throws

int a = 1;
int b = 0;
try{ //try 监控区域
    System.out.println(a/b)
}catch (异常类型 e){ //catch 捕获异常,执行异常后进行的操作
    System.out.println("程序出现异常")
}finally{		// 处理善后工作
    System.out.println("finally")
}


throw new 异常类型();						// 主动抛出异常,一般在方法中使用

ctrl + alt + t : 快速生成代码框架包裹代码块


自定义异常

自定义异常只需继承 Exception 类即可,自定义异常不常用

// 通过构造器来接受传入信息,再通过toString 方法打印需要返回的错误信息
public class MyException extends Exception{
    pulic int datail;
    // 定义构造器传入参数
    public MyException(int a){
        this.number=a;
    }
    //toString : 用于打印异常的信息
    //toString 方法会在类被当作字符串时自动调用
    public String toString(){
        return "MyException{"+number+"}";
    }
}



// 调用自定义异常需注定throw 抛出捕获,或者throws 抛至更高层的方法
static void test(int a) throws MyException{			// throws向函数调用层抛出异常
    System.out.println("传递的参数为"+a);
    if (a>10){
        throw new MyException(a);	// 主动使用MyException 抛出异常
    }
    System.out.println("OK");
}
psvm{
    // 由于异常由方法抛出,所以这里必须做try catch 捕获
    try{
        test(1);
    }catch (MyException e){		// catch 会将MyException 类当作字符串调用,从而触发了toString 方法
       System.out.println("MyException=>"+e)
    }
}

try catch 捕获异常时,若存在多重catch 块,需catch(Exception) 用来兜底

posted @ 2025-10-25 11:13  QZ不是crazy  阅读(7)  评论(0)    收藏  举报