异常的扑捉:
1、try{可能出现异常的代码块}catch(Exception e){}
2、在出现异常的方法的方法名后throws Exception
自定义异常:
public class MyThrows extends Exception{
public MyThrows(){
super();// 调用父类构造方法(无参)
}
public MyThrows(String magr){
super(magr);
}
}
使用异常:public class TestException {public static void ml()throws Exception{if(true){throw new Exception("我是true==========");}}public static void main(String[] args) throws Exception{ml();}}运行结果:
Exception in thread "main" com.ml.throwss.MyThrows: 我是true==========
at com.ml.throwss.TestException.ml(TestException.java:6)
at com.ml.throwss.TestException.main(TestException.java:10)
3、throw和throws的区别
★throw代表语句抛出异常 throws表示一个方法跑出异常
★throw必须和throws或try catch配对使用,而throws可以单独使用
★throws后可跟多个异常,用逗号隔开
★throw语句用在方法体内,表示抛出异常,由方法体内的语句处理
throws语句用在方法声明后面,表示再抛出异常,由调用这个方法的上一级方法中的语句来处理
void doA() throws Exception1, Exception3 { try { ……
} catch(Exception1 e) { throw e;
} catch(Exception2 e) {
System.out.println("出错了"); }
if (a != b)
throw new Exception3("自定义异常"); } 代码块……中可能产生异常Exception1、Exception2和Exception3。
如果产生Exception1异常,则捕捉了之后抛出由该方法的调用者去做处理;
如果产生Exception2异常,则该方法自己做了处理(打印出了说出错了),而Exception3异常是该方法的某段逻辑出错,程序员自己作了处理在该段逻辑错误的情况下抛出异常Exception3,则调用者也需要处理