Java-SE Day6
Java 异常
Java 把异常当作对象处理,并定义一个基类java.lan.Throwable 作为所有异常的超类
异常分为两大类 : Error 和 Exception
**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) 用来兜底

浙公网安备 33010602011771号