博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
切记,不要忽略异常
阅读量:4550 次
发布时间:2019-06-08

本文共 770 字,大约阅读时间需要 2 分钟。

切记,不要忽略异常

  尽管这条建议看上去显而易见,但是它常常被违反,因而值得再次被提出来。当API的设计者声明一个方法将被抛出某个异常的时候。他们等于正在试图说明某些事情。所以请不要忽略它!要忽略一个异常非常容易,只需要讲方法调用通过try语句包围起来,并包含一个catch块:

// Empty catch block ignores exception - Highly suspect!try{  ...} catch(SomeException e){}

  空的catch块会使异常达不到应有的目的,即强迫你处理异常的情况。忽略异常就如同忽略火警信号一样——若把火警信号器关掉了,当真正的火灾发生时,就没有人能看到火警信号了。或许你能够侥幸逃过一劫,或许结果将是灾难性的。每当见到空的catch块时,应该警钟长鸣。至少catch块也应该包含一条说明,解释为什么可以忽略这个异常。

  有一种情形可以忽略异常,即关闭FileInputSteram的时候。因为你还没有改变文件的状态,因此不必执行任何恢复动作,并且已经从文件中读取到所需要的信息,因此不必终止正在进行的操作。即使在这种情况下,把异常记录下来还是明智的做法,因为如果这些异常经常发生,你就可以调查异常的原因。

  本条目中的建议同样适用于受检异常。不管异常代表了可预见的异常条件,还是变成错误,用空的catch块忽略它,将会导致程序在遇到错误的情况下悄然地执行下去。然后,有可能在原来的某个点上,当程序不能再容忍与错误源明显相关的问题时,它就会失败。正确地处理异常能够彻底挽回失败。只要将异常传播给外界,至少会导致程序迅速地失败,从而保留了有助于调试该失败的条件的信息。

转载于:https://www.cnblogs.com/mr-cc/p/5825360.html

你可能感兴趣的文章
Qt中第一请求web api连接返回缓慢问题
查看>>
sklearn调用逻辑回归算法
查看>>
k-近邻算法原理入门-机器学习
查看>>
sklearn实现多分类逻辑回归
查看>>
python机器学习基本概念快速入门
查看>>
sklearn的train_test_split()各函数参数含义解释(非常全)
查看>>
scikitlearn库中调用k-近邻算法的操作步骤
查看>>
k-近邻算法采用for循环调参方法
查看>>
pyhton matplotlib可视化图像基础(二维函数图、柱状图、饼图、直方图以及折线图)...
查看>>
机器学习算法中的网格搜索GridSearch实现(以k-近邻算法参数寻最优为例)
查看>>
pyhton中matplotlib箱线图的绘制(matplotlib双轴图、箱线图、散点图以及相关系数矩阵图))...
查看>>
pyhton机器学习入门基础(机器学习与决策树)
查看>>
机器学习评价指标
查看>>
机器学习算法的整体流程(非常易懂)
查看>>
k-近邻算法的优缺点及拓展思考
查看>>
python如何输出矩阵的行数与列数?
查看>>
Python Sklearn.metrics 简介及应用示例
查看>>
机器学习多元线性回归的数学原理推导
查看>>
keras人工神经网络构建入门
查看>>
多元线性回归算法python实现(非常经典)
查看>>