异常 (Exception)
分类:
- 检查性异常
- 运行时异常
- 错误ERROR
ERROR类:由Java虚拟机生成并抛出,一般是致命性错误。
Exception类:可以被程序处理
异常处理机制
捕获异常
try{
}catch(ArithmeticException e){
//括号中为想要捕获的异常类型
}catch(异常类型 变量名){
变量名.printStackTrace();//打印错误栈信息
}finally{//善后,无论有没有异常,都会运行
}//finally可以不要,try-catch必须要
规则:
- 如果catch中没有捕获到异常,程序也会也执行finally,在报错。
- catch可以有多个,异常类型必须从小到大,否则程序会报错(可以理解为如果大的在上面,下面的异常永远都不会被捕获到)。
- IDEA快捷键 ctrl + alt +t
抛出异常
方法中使用,用throw
public class Test{
public void test (){
//主动抛出异常
throw new ArithmeticException();
}
}
方法上抛出异常要用throws
public class Test {
//假设在方法中不能处理异常,方法上抛出异常
public void test() throws ArithmeticException{
}
}
自定义异常
用户自定义异常,继承Exception类
public class MyException{
//传递数字>10
private int detail;
public MyException(int a){//alt + insert
this.detail = a;
}
//toString:重写异常的打印信息
//重写之后可以使用System.out.print(MyException类型变量名)
@Override
public String toString(){
return "MyException{" + detail +"}";
}
}
如果之后需要打印MyException类型的变量,就会运行重写的toString()