`
MauerSu
  • 浏览: 496779 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java异常匹配原则

 
阅读更多
源:http://blog.csdn.net/butcher__/article/details/54837131
评:
java异常匹配有两个重要原则:

异常控制系统会按当前catch控制器的编写顺序来搜索,一旦找到相符的catch控制器,就认为异常已被捕获,不再进行更多的搜索。
catch控制器可以捕获当前异常类以及从它衍生的子类。
根据这两个原则,来做个测试,首先定义BusinessException和LoginException, BusinessException继承Exception, LoginException继承BusinessException。

class BusinessException extends Exception {
    //empty
}
class LoginException extends BusinessException {
    //empty
}
1
2
3
4
5
6
那么,LoginException只能捕获LoginException, BusinessException可以捕获LoginException和BusinessException, Exception可以捕获LoginException、BusinessException和Exception

Test1 :

try {
    throw new LoginException();
} catch (LoginException le) {
    System.out.println("LoginException catch");
} catch (BusinessException be) {
    System.out.println("BusinessException catch");
} catch (Exception e) {
    System.out.println("Exception catch");
}
//运行结果: LoginException catch
1
2
3
4
5
6
7
8
9
10
Test2 :

try {
    throw new LoginException();
} catch (BusinessException be) {
    System.out.println("BusinessException catch");
} catch (Exception e) {
    System.out.println("Exception catch");
}
//运行结果: BusinessException catch
1
2
3
4
5
6
7
8

注意, 在catch控制器编写顺序中, 不要将父类异常位于子类异常之前,编译器会报错。因为永远无法执行到这个子类catch控制器。
分享到:
评论

相关推荐

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    7.5.6 重载中的最难点——参数匹配原则 171 7.6 使用类的实例作为方法参数 172 7.6.1 超车方法:使用类实例做参数 172 7.6.2 调用这个方法 173 7.6.3 发生了什么 174 7.7 加餐:局部变量和实例变量 175 7.7.1 ...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    7.5.6 重载中的最难点——参数匹配原则 171 7.6 使用类的实例作为方法参数 172 7.6.1 超车方法:使用类实例做参数 172 7.6.2 调用这个方法 173 7.6.3 发生了什么 174 7.7 加餐:局部变量和实例变量 175 7.7.1 ...

    达内java培训目录

    JavaSE核心 异常处理、多线程基础、IO系统、网络编程、Java反射机制、JVM性能调优(JVM内存结构剖析、GC分析及调优、JVM内存参数优化)、Java泛型、JDK新特性 熟练掌握JavaSE核心内容,特别是IO和多线程;...

    JAVA程序设计教程

    Java程序.............................................................................................6 1.3.1 Java程序的结构 ...........................................................................

    轻量级JAVA实时业务风控系统框架.zip

    什么样的事件是有风险的,风险分析需要用到统计学,对异常用户的历史数据做统计分析,找出异于正常用户的特征 实时性,风险事件的分析必须毫秒级响应,有些场景下需要尽快拦截,能够给用户止损挽回损失 低误报,这...

    网狐荣耀版开发使用常见问题解答

    一、申请短信通道,国内的短信通道很多,不同的通道速度不一样,我们在申请时要一个基本原则就是速度要快,基本上要发送即接收了,客户不可能等的。国内调查发现,客户等网页打开的时间是最长不超过5秒,短信接收的...

    天地伟业技术培训资料.pptx

    变灰的可能原因:可用的基站数目不够,致使无法解算,或者基站异常无法解算, 或者有较大遮挡导致定位误差过大使得解算失败。 9、有标签电量,但是没有定位:正常情况下,只要有一个基站可以和标签通信,从而就能看到...

    Spring-Reference_zh_CN(Spring中文参考手册)

    13.11. 惯例优先原则(convention over configuration) 13.11.1. 对控制器的支持: ControllerClassNameHandlerMapping 13.11.2. 对模型的支持:ModelMap (ModelAndView) 13.11.3. 对视图的支持: ...

    【05-面向对象(下)】

    •接口体现了规范与实现分离的原则。充分利用接口可以很好地提高系统的可扩展性和可维护性。 •接口与简单工厂模式、命令模式等。 内部类 •我们把一个类放在另一个类的内部定义,这个定义在其他类...

    C++数据抽象和问题求解(第6版).[美]Frank M. Carrano(带详细书签).pdf

    书中使用的软件工程原则和概念以及UML图便于增强学生的理解。 ◆ 详细介绍了数据抽象,强调规范和实现之间的区别 ◆ 广泛介绍了各种面向对象的编程技术 ◆ 重点是核心的数据结构,而不是非必要的C++语言语法 ◆ ...

    asp.net知识库

    常用的匹配正则表达式和实例 经典正则表达式 delegate vs. event 我是谁?[C#] 表达式计算引擎 正式发布表达式计算引擎WfcExp V0.9(附源码) 运算表达式类的原理及其实现 #实现的18位身份证格式验证算法 身份证15To18...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    工程硕士学位论文 ...研究生姓名: 唐帅 导师姓名: 罗军舟 教授 苏生 教授 申请学位类别 工 程 硕 士 学位授予单位 东 南 大 学 工程领域名称 软 件 工 程 论文答辩日期 ...学位授予日期 答辩委员会主席 评阅人 ...

Global site tag (gtag.js) - Google Analytics