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

【第47条】不要忽略异常

 
阅读更多

    作为本章的最后一条,此条目是一条“纪律”,一条你必须遵守的纪律。虽然这是显而易见的道理,但却很容易被违反。

 

    任何一个被抛出的异常都是API设计者有意为之的,其中蕴含了特定的含义,所以千万不能忽略它们!

 

try{
    ......
}catch (Exception e){
}

 

 

    这样的代码并不十分罕见,这有可能是在代码堆砌阶段的“简单写法”,也可能是程序员“偷懒”的写法,当然也有可能是连“何为Exception”都不得而知的“高人”的作品。

 

    这里犯了两个错误。首先,就是本条要强调的,它忽略了捕获来的异常。相当于是把异常抓来,然后“杀”掉它,也就是“装没看见”。

 

    另一个错误是,不该使用异常的超类Exception,而应该“具体异常,具体分析”。

 

    当然,有些场合还是需要“忽略掉”异常的,但至少要在catch块中写明注释,这里为什么要忽略掉某种异常。而且这种情况的出现率绝不能太高。

 

 

【Effective Java 学习笔记】系列连载专题请见:
http://tonylian.iteye.com/categories/64208

 

分享到:
评论

相关推荐

    电子实验四十进制计数器及译码显示.docx

    然而,在这个四十进制计数器中,我们只使用前九个数字(0000~1001),代表0~9,而忽略1010~1111,这是为了实现十进制计数的特性。 计数器的工作原理是:每当有一个脉冲输入,其状态就会增加一,直到达到预设的最大...

    疯狂JAVA讲义

    10.6.4 不要忽略捕获到的异常 379 10.7 本章小结 379 本章练习 379 第11章 AWT编程 380 11.1 GUI(图形用户界面)和AWT 381 11.2 AWT容器 382 11.3 布局管理器 385 11.3.1 FlowLayout布局管理器 386 11.3.2 ...

    java面试题大集合

    #### 二十七、如何取得从1970年到现在的毫秒数 使用`System.currentTimeMillis()`方法来获取当前时间距离1970年1月1日0时0分0秒的毫秒数。 #### 二十八、如何获取某个日期是当月的最后一天? 可以通过`Calendar`...

    2022年部编版五年级数学上册期中考试题(附答案).pdf

    7. **概率与策略**:第七题使用无砝码天平找异常糖果,需要运用最优化策略找出问题糖果,涉及逻辑推理。 8. **长方体容积**:第八题通过长方体容积计算其宽度,需理解长方体体积公式。 9. **奇偶数与质合数**:第...

    Lie with statistic

    此外,书中还提到,可以通过忽略异常值或者极端值来改变平均数,进而操纵统计数据的结果。 #### 四、缺失的小数字 第三章关注的是那些被故意遗漏的数据点。有时候,为了使统计数据看起来更加符合预期,某些数据会...

    《Java程序设计》练习题

    - 非运行时异常必须被捕获或声明抛出,而运行时异常则可以选择捕获或忽略。 17. **标准输出流** - `System.out`和`System.err`都是标准输出流,可以用于打印信息到控制台或其他输出设备。 - `System.out`通常...

    2023年数据库期末练习题选NOkey.doc

    4. **数据库设计过程**:第四题指出E-R图到关系数据模型的转换发生在数据库设计的逻辑设计阶段。这个阶段将概念设计的结果,即E-R图,转化为更具体的表结构。 5. **事务管理子系统**:第五题中,事务的持久性是通过...

    (学软件编程需必学的英语)第一学期英文单词汇总

    #### 第十七章:其他术语 - **mini**:迷你,小型化的版本或实现。 - **initial**:初始化,创建对象时设置初始状态的过程。 - **delete**:删除,移除或销毁对象或数据。 - **search**:搜索,查找特定信息的过程。...

    绝对经典 C++初学者必看的50个建议

    同时,也不要过分追求速度而忽略了对基础知识的掌握。 #### 17. 掌握标准库 - **重要性**:标准库为开发者提供了丰富的工具集。 - **建议**:熟练掌握 C++ 标准库中的各种组件,包括容器、算法等,这将大大提高...

    java 面试题

    抽象是指忽略细节,只关注于解决问题所需的部分;继承是指新类可以继承原有类的属性和方法;封装是将对象的状态信息隐藏在对象内部;多态性允许不同类的对象对同一消息作出响应。 作用域说明了类成员的可访问性。...

    Eclipse调试Java的10个技巧

    #### 十四、进入、跳过、返回 最后,掌握基本的调试命令对于高效调试至关重要: 1. **F5 - Step Into**:进入当前行调用的方法。 2. **F6 - Step Over**:执行当前行而不进入方法。 3. **F7 - Step Return**:执行...

    华为编程开发规范与案例

    【案例2.1.5】 第47页 【案例2.1.6】 第48页 2、注意多出口函数的处理 第49页 【案例2.2.1】 第49页 三、维护类代码问题 第51页 1、 统一枚举类型的使用 第51页 【案例3.1.1】 第51页 2、 注释量至少占代码总量的20...

    C#微软培训资料

    第十七章 文 件 操 作 .215 17.1 .Net 框架结构提供的 I/O 方式 .215 17.2 文件存储管理 .217 17.3 读 写 文 件 .222 17.4 异步文件操作 .227 17.5 小 结 .234 第十八章 高 级 话 题 .235 18.1 注册表...

    JAVA面向对象

    - **&&**:逻辑与运算符,用于判断两个条件是否同时成立,具有短路效果,即如果第一个条件为假,则不会评估第二个条件。 以上内容是对Java面向对象编程的一些基本概念和技术点的总结。面向对象是Java编程的核心,...

    Java 面试 项目管理

    - **抽象**:从复杂的问题中提取关键特征,忽略不相关细节。 - **继承**:一个类可以从另一个类继承属性和方法,促进代码复用。 - **封装**:将数据和操作数据的方法封装在一起,提高安全性。 - **多态性**:一个...

    超级有影响力霸气的Java面试题大全文档

    1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是...

Global site tag (gtag.js) - Google Analytics