1.异常的处理方案
1.异常抛出: throws 把异常抛出到上一层,谁调用谁解决
2.异常捕获: try … catch
throws抛出异常
throws语句用在方法定义时声明该方法要抛出的异常类型,如果抛出的是Exception异常类型,则该方法被声明为抛出所有的异常。多个异常用逗号隔开。
methodName throws Exception1, Exception2,... ExceptionN{
}
throw抛出异常
throw总是出现在函数体中,用来抛出一个Throwable类型的异常。
程序会在throw语句后立即终止,他后边的语句执行不到,然后在包含它的所有try块从里向外寻找含有与其匹配的catch子句的try块。
try catch抛出异常
try{
有可能出现异常的代码;
}catch(FileNotFoundException e){
处理异常代码;
}catch(NullPointerException e){
处理异常代码;
}catch(Exception e){
所有异常都能接收;
}finally{
无论try中是否会出现异常,都会执行finally中的代码
//资源的关闭等代码
}
注意:一个try的后面可以接1~n个catch
2.自定义异常
一.类型:自定义的异常类型
二.使用:
1.所有自定异常类型必须直接或间接继承自Exception
2.如果自定义异常为运行时异常,需要直接或间接的继承自RuntimeException
三.throws 制造异常
如:
package com.xsz.java.Exception;
public class MyException extends Exception {
private String age;
public void except(){}
public void except (String age){
this.age=age;
}
}
class check{
public static void main(String[]args){
Testion t = new Testion();
try {
t.ask("1");
} catch (MyException e) {
e.printStackTrace();
}
}
}
class Testion {
public void ask(Object obj)throws MyException{
if(obj instanceof String){
System.out.println("true");
}
else {
MyException m = new MyException();
throw new MyException();
}
}
}