-------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流>-----
1. throws声明异常
用throws关键字在方法中声明可能出现的异常。如果出现异常,这些异常只是被抛出,方法本身不对其做出处理,而是传给上级处理。
格式:在方法名和大括号之间加入throws 异常类
例如: public int method ( int a ) throws Exception {
}
可以声明多个异常,在异常类之间用逗号隔开
public int method (int a) throws Exception 1 , Exception 2 ,Exception3 {
}
党在方法中声明可能发生的异常时,为了让编译通过,有两种处理方式:
(1)在main方法中声明异常,即不做处理,交给虚拟机处理。
(2)在main中使用try捕获。
2. throw抛出异常
当异常发生时,在方法内部使用throw 关键字抛出异常,把它抛给上一级调用者。抛出的是异常对象或者异常引用。
例如:
public int method (int a) method throw Exception{
……….
throw new ArithmeticException();
………..
}
为了让编译通过,两种处理方式:
(1) 在方法上用throws声明异常。(常用)
(2) 使用try捕获。
1. throw 和 throws 的区别:
(1) throws是声明异常用在方法上,throw是抛出异常用在方法中。
(2) throws后面加 异常类 , throw后面加 异常对象
(3) throws 是可能发生异常 ,throw是已经发生异常。
2. RuntimeException 异常类
如果在方法内容抛出该异常throw ,方法上可以不用声明,编译一样可以通过。
如果在方法内容声明了该异常throws ,调用者可以不用进行处理,编译一样可以通过。
之所以不用在方法上声明,是因为不需要让调用者处理。
当该异常发生时,虚拟机希望程序停止。因为在程序运行时,出现了无法继续运算的情况,希望停止程序后,对代码进行修改。
3. 自定义异常类
自定义异常需要靠继承成为异常类。
通常主要继承Exception或者RuntimeException两个异常类。
例如:
Class MyException extends Exception {
MyException(String str){ // 构造函数
super (str);
}
}