时间:2023-3-20来源:本站原创作者:佚名
白癜风的土方 http://m.39.net/pf/a_4925649.html

defmain():try:1/0#ZeroDivisionError:divisionbyzeroexceptZeroDivisionErrorasex:print(ex)if__name__==__main__:main()divisionbyzero

1.2try...except...else...finally

小潘同学刚进来就看见了,自语道:“try...except捕获异常谁不会?就会这么屁点东西还好意思秀,切~我给你把格式补全”

于是乘着小明上厕所的时候,擦掉小明的Code,自己写了一段高大上的Code:

In[2]:

这时候小明和老师一起进来了,同学们隐约间都听到小明的自夸声:“老师,我可好了,提前预习并且还写了个demo在黑板上呢~”

老师一进门看着黑板就笑了,同学们也笑成一片。小明心想,咦~难道我写错了?定眼一看黑板,气呼呼的回座位了

#多个异常捕获defmain():try:print(xiaopan)#NameError:namexiaopanisnotdefined1/0#ZeroDivisionError:divisionbyzeroexceptNameErrorasex:print(ex)exceptZeroDivisionErrorasex:print(ex)if__name__==__main__:main()namexiaopanisnotdefined

#多个异常捕获的简写(注意哦,是元组哦)defmain():try:print(xiaopan)#NameError:namexiaopanisnotdefined1/0#ZeroDivisionError:divisionbyzeroexcept(NameError,ZeroDivisionError)asex:print(ex)if__name__==__main__:main()namexiaopanisnotdefined

老师赶紧夸了夸小明,心想,哎呦喂终于把这难缠的家伙弄回座位了。

小明走前还不忘说一句:“简写的时候注意格式哦,是元组不是逗号分隔”

defmain():try:1/0#ZeroDivisionError:divisionbyzeroexceptBaseExceptionasex:print(base:,ex)exceptZeroDivisionErrorasex:print(ex)if__name__==__main__:main()base:divisionbyzero

如果把父类放第一个,那么ZeroDivisionError永远也不会被执行了,其实你如果装了代码规范提示插件会提示你的

可以参考我之前写的vscode设置python3调试环境的扩充部分

来个通用异常捕获的简写(官方不推荐使用简写):

In[6]:

#直接except就行了defmain():try:1/0dnt+=1except:print(屏蔽错误)if__name__==__main__:main()屏蔽错误

老师继续讲到,我们来看一个场景,现在很多在线编辑器,你在他们那些编辑框里写下了代码也是有异常抛出的,这是怎么处理的呢?

ZeroDivisionErrorTraceback(mostrecentcalllast)ipython-input-7-15fe2d8inmodule()if__name__==__main__:---11main()ipython-input-7-15fe2d8inmain()2defmain():3try:----41/0#ZeroDivisionError:divisionbyzero5exceptZeroDivisionErrorasex:6print(ex)#写个日志,回头出问题可以深究ZeroDivisionError:divisionbyzero

异常这一块基本上讲完了(logging模块后面会说)有什么补充的可以说的^_^

小明又进行了C#的代码转换,怎么看都觉得还是C#简单啊,根本不用说啥,代码一贴就秒懂了。。。

In[1]:

现在一些需要finally的地方基本上都被using(){}接管了,所以特定场景会使用

先这样了


转载请注明原文网址:http://www.gzdatangtv.com/bcyyys/bcyyys/17910.html
------分隔线----------------------------