(1)异常是按照catch的书写顺序进行匹配的。找到匹配的处理程序后,它就认为异常将得到处理,然后就不在查找。
示例代码1:
package com.darkmi.exceptionstudy;
public class ExceptionTest {
public static void main(String[] args) {
try {
throw new TwoException();
} catch (TwoException twoE) {
twoE.printStackTrace();
} catch (OneException oneE) {
oneE.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
}
}
class OneException extends Exception{
}
class TwoException extends OneException{
}
在Eclipse中编辑该代码,Eclipse的智能提示功能已经给出warning:
Unreachable catch block for OneException. Only more specific exceptions are thrown and handled by previous catch block(s).
(2)查找的时候并要求抛出的异常同异常处理程序(即catch代码段)所声明的异常完全匹配,派生类的对象也可以匹配处理程序中声明的基类。
示例代码2:
package com.darkmi.exceptionstudy;
public class ExceptionSearch {
public static void main(String[] args) {
try {
throw new TwoException();
} catch (OneException oneE) {
oneE.printStackTrace();
}
}
}
class OneException extends Exception {
}
class TwoException extends OneException {
}
Sorry, the comment form is closed at this time.
No comments yet.