java异常的匹配

(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 {
}

此条目发表在java/j2ee分类目录,贴了, 标签。将固定链接加入收藏夹。

发表评论

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据