1.常见的错误
TypeError 类型错误
NameError 没有该变量
ValueError 不期望的值
AttributeError 没有该属性
UnboundLocalError 没有该局部变量
ImportError 没有该模块
IOError 打不开文件
IndexError 列表没有该下标
KeyError 字典没有该键
IndentationError 代码没有对齐
SyntaxError 语法错误
KeyboardError Ctrl+C被按下
2.示例代码
#!/usr/bin/env python # _*_ coding:UTF-8 _*_ if __name__ == "__main__": try: pass except (NameError, ValueError), e: print "NameError或者ValueError" except IOError, e: print "IOError" except Exception, e: print "其他的错误" else: print "没有错误" finally: print "有没有错误都执行"
3.自定义异常与手动触发异常
#!/usr/bin/env python # _*_ coding:UTF-8 _*_ class MyException(Exception): def __init__(self, error): self.error = error def __str__(self): return self.error if __name__ == "__main__": try: raise MyException("自定义错误") except (NameError, ValueError), e: print e print "NameError或者ValueError" except IOError, e: print e print "IOError" except Exception, e: print e print "其他的错误" else: print "没有错误" finally: print "有没有错误都执行"
结果:
/Users/liudaoqiang/PycharmProjects/numpy/venv/bin/python /Users/liudaoqiang/Project/python_project/day19/except_test.py
自定义错误
其他的错误
有没有错误都执行
Process finished with exit code 0
注意:
(1)若类中定义了__str__()则直接写该类时会调用该__str__()
(2)使用raise Exception()会手动触发异常