-
异常的定义
-
捕捉异常范例
try{
//可能产生异常的代码
}catch(Type1 id1){
//处理Type1异常的代码
}catch(Type2 id2){
//处理Type2异常的代码
}catch(Type3 id3){
//处理Type3异常的代码
}
异常捕捉的意义:异常发生,程序也不需要终止
3.
- 捕捉到异常对象后可以做什么
- String getMessage();
- String toString();
- void printStackTrace();
例
public static void main(String[] args){
try {
k();
}catch (ArrayIndexOutOfBoundsException e){
System.out.println(e.getMessage());//放在异常对象里面的值
System.out.println(e);//异常类的名字和它的message
e.printStackTrace();//打印调用堆栈,显示调用关系及发生行号
}
}
但是肯定是回不去了,而具体的处理逻辑则取决于业务逻辑的需要
-
异常抛出
在catch{}内加throw e;(祈使句,throw)
效果:就像没捕捉过 -
异常声明
放在可能抛出异常的函数后面,为陈述句,throws
public static void readFile() throws OpenException{
if(open() == -1){
throw new OpenException();
}
}
-
什么可以“抛出”?
任何继承了Throwable类的对象
Exception类继承了Throwable -
抛出子类异常可以被父类异常捕捉器捕捉到
万能捕捉器——捕捉任何异常
catch(Exception e){
System.out.println("Caught an exception");
}
- 子类中不可以出现比父类更多的异常
但父类构造器会抛出的异常,子类构造器中一定要有