一、什么是异常
- 简单的分类
二、异常体系结构
Error
Exception
三、Java异常处理机制
四、处理异常
捕获异常
public class Test {
public static void main(String[] args) {
int a = 1;
int b = 0;
try { //try监控区域
if(b==0){ //throw throws 是两个完全不同的东西
throw new ArrayStoreException(); //主动抛出异常
}
System.out.println(a/b);
}catch( ArithmeticException e ) {//catch(想要捕获的异常类型)捕获异常
System.out.println("程序出现异常,变量b不能为0");
}finally {//处理善后工作
System.out.println("finally");
}
//finally 可以不要finally,假设IO,资源,关闭
}
}
快捷键:Ctrl + Alt + T
主动抛出异常
public class Test {
public static void main(String[] args) {
new Test().test(1,0);
}
//假设这个方法中,处理不了这个异常。方法上抛出异常
public void test(int a, int b) {
if (b == 0) {// throw throws
throw new ArrayStoreException(); //主动的抛出异常,一般在方法中使用
}
}
}
五、自定义异常
自定义的异常类
//自定义的异常类
public class MyException extends Exception {
//传递数字 > 10
private int detail;
public MyException(int a) {
this.detail = a;
}
//打印异常信息
@Override
public String toString() {
return "MyException{" +
"detail=" + detail +
'}';
}
}
抛出异常
public class Test {
//可能会存在异常的方法
static void test(int a) throws MyException {
System.out.println("传递的参数为:"+a);
if(a>10) {
throw new MyException(a); //抛出
}
System.out.println("OK");
}
public static void main(String[] args) {
try {
test(11);
} catch (MyException e) {
e.printStackTrace();
System.out.println("MyException=>"+e);
}
}
}