异常
exception
-
检查型异常:最具代表的检查型异常是用户错误或者问题引起的异常这是程序员无法预见的。例如:打开一个不存在的文件,就会发生异常,这些异常在编译时不能被简单地忽略。
-
运行时异常:运行时异常可能被程序员避免的异常,与检查型异常相反,运行时异常可以在编译时被忽略。
-
错误ERROR:错误不是异常,而实脱离程序员控制的异常
java把异常当作对象来处理,并定义了一个基类java.lang.Throwable作为索引异常的超类。
在Java API中已经定义了许多种异常类,分为两大类:错误ERROR和异常Exception。
关键字
try,catch,finally ,throw ,throws
int a =1;
int b = 0;
try{//try监控区域
if(b == 0){
throw new ArithmeticException(); //主动抛出异常,一般在方法中使用
}
System.out.println(a/b);
}catch (ArithmeticException e){ //catch捕获异常的异常类型 一定要有catch
System.out.println("程序出现异常,变量b不能为零");
}finally {//处理善后工作 ,finally可以不要,注意用在IO,资源关闭
System.out.println("finally");
}
}
自定义异常
public class MyException extends Exception { //传递数字>10,抛出异常 private int detail; public MyException(int a) { this.detail = a; } //toString @Override public String toString() { return "MyException{" + "detail=" + detail + '}'; } }
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) {
System.out.println("MyException =>"+e);
}
}