为了账号安全,请及时绑定邮箱和手机立即绑定

Python:异常和错误的处理策略问题

Python:异常和错误的处理策略问题

至尊宝的传说 2019-04-07 11:18:48
Python异常和错误处理时,try...except、if...else...哪个更好一些,为什么?Thepointisthatusingtry/exceptstatementsisinmanycasesmuchmorenatural(more“Pythonic”)thanif/else,andyoushouldgetintothehabitofusingthemwhereyoucan.这个是《BeginningPythonFromNovicetoProfessional,2ndEdition》里的原话,但StackOverflow里又有Whyis“except:pass”abadprogrammingpractice?我就疑惑了……到底哪个好一些?还是说有更好的方法?
查看完整描述

2 回答

?
白猪掌柜的

TA贡献1893条经验 获得超10个赞

异常的时候,使用try...except
正常的程序流程使用if...else
以数组为例,比如读取数组下标越界,你的程序中并不期盼由此发展出功能。
try:
data=array[x][y][z]
exceptException:
data=None
#或者定义任何你不期盼发生的情况下的默认处理
但是,假如你的程序设计里,数组的越界与否是功能具体实现的一部分,那么就应该使用if...else保证语义清晰。
ifxifyelse:
else:
但,也不是绝对,如果可视性与语义冲突,我个人以为可视性>=语义清晰。比如简单而又易发的单句越界检查,即使越界在设计里是异常,但因为if的语句少过try,则我以为可以写if。
总的来说,raise就是把所有状态抛出,可以在任意上层处理,if...else则是就地的代码分支.
                            
查看完整回答
反对 回复 2019-04-07
  • 2 回答
  • 0 关注
  • 274 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号