[Python基础]008.异常
异常
异常处理
捕获异常
try/except
与C,java等语言用try/catch
来捕获异常相似,Python使用try/except
try/except/finally
无论是否有异常都会执行finally
下的语句try/except/else
没有抛出异常时执行else
下的语句
代码
try: f = open('data.txt') f.read() print zz print 5/0 except IOError, e: # 捕获IO异常,变量e接收具体的错误信息 print e except NameError, e: # 捕获名字异常 print e except Exception, e: # 捕获剩下的其他异常 print e else: # 没有异常时执行 print 'no error' finally: # 无论有无异常都会执行的内容 print 'do anyway'
抛出异常
raise
抛出一个异常
代码
def error_fun(): raise Exception('it is an error function') # 抛出一个通用异常Exception # 捕获上面的异常 try: error_fun() execept Exception, e: print e
自定义异常
通过继承异常类,就可以自定义异常。最常见的就是直接继承自Exception
类。
# 自定义异常 class MyException(Exception): def __init__(self, arg, arg2): Exception.__init__(self, arg) self.arg2 = arg2 # 捕获 try: raise MyException('abc', 10) except MyException, e: print e, e.arg2
一些常见的异常
Exception
基础异常ZeroDivisionError
除数为0异常OverflowError
内存溢出ImportError
导入模块异常NameError
没有声明对象RuntimeError
一般运行时异常NotImplementedError
未实现方法SyntaxError
语法错误IOError
IO操作异常- ...
本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 )
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4581764.html
比大多数人的努力程度之低,根本轮不到拼天赋...
宝宝巴士 SD.Team