java异常机制
1. 1、异常体系结构
- Java把异常当作对象来处理,并定义一个基类 java.lang.Throwable 作为所有异常的超类。
- 在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exception
1.1. Error
1.2. Exception
1.3. Error和Exception的区别:
- Error通常是灾难性的致命的错误,是程序无法控制和处理的,当出现这些异常时,Java虚拟机(JVM)一般会选择终止线程;
- Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能的去处理这些异常,
2. 2、捕获和抛出异常
2.1. try关键词
public static void main(String[] args) {
int a=10;
int b=0;
try{//try监控区域
System.out.println(a/b);
}catch(ArithmeticException e){
System.out.println("程序出现异常,变量b不能为0");
}finally {//处理善后工作
System.out.println("finally");
}
}
}
try catch必须要,但finally可以不用
finally一般处理一些善后工作 如 scanner.close
catch(想要捕获的异常类型)
2.2. catch捕获多个异常
try{//try监控区域
System.out.println(a/b);
}catch(ArithmeticException e){
System.out.println("程序出现异常,变量b不能为0");
}catch(Throwable t){
System.out.println("出现其他异常");
}finally {//处理善后工作
System.out.println("finally");
注意,异常类型要由小到大,不然就会被覆盖
快捷键 ctrl+alt+t
2.3. throw主动抛出异常
throw抛出异常通常写在方法里面
public static void main(String[] args) {
new Demo02().test(1,0);
}
public void test(int a,int b){
if(b==0){
throw new RuntimeException("除数不能为0");
}
System.out.println(a/b);
}
}
运行后会报错,并抛出指定的异常


