python 异常处理
Posted 我的下铺刚田武
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 异常处理相关的知识,希望对你有一定的参考价值。
异常处理:处理可预见的错误,防止程序中断。
name=[\'刚田武\',\'朱二娃\'] data={} try: print(name[1]) #print(data[\'pgtwo\']) except KeyError as e: print(\'key 错了\',e) except IndexError as e: print(\'索引出错\',e) except Exception as e: #放在所有except的最后,当不知道错误类型时执行 print(\'未知错误\',e) else: #没有错误时执行 print(\'一切正常\') finally: print(\'无论有没有错误都会执行。\')
也可以这样写except块:
except (KeyError,IndexError) as e: print(\'key 错误或者索引错误\',e)
把多个异常类型写在一起,节省代码,但是出现异常时不能分辨出是哪一种。
因为难以穷举错误类型,所以在结尾处写except Exception as e用来捕获大部分错误。缩进错误、语法错误会导致程序不能继续解释下去,无法捕获。
在python2.x中语法如下:
except Error_type,e: #用逗号,不用as code
自定义异常:[http://www.cnblogs.com/wupeiqi/articles/5017742.html]
class MyException(Exception): def __init__(self, msg): self.message = msg def __str__(self): #定义直接调用类时的返回值。基类Exception中已经有此方法,这里可以不写或者重构 return self.message #此处返回值如果不是self.message,则程序最终打印的就不是“自定义异常” try: raise MyException(\'自定义异常\') except MyException as e: print(e) #直接调用类时,类返回值由__str__()方法确定
以上是关于python 异常处理的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 多处理进程中运行较慢的 OpenCV 代码片段