老男孩python学习自修第十九天【异常处理】

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()会手动触发异常

猜你喜欢

转载自www.cnblogs.com/liuzhiqaingxyz/p/9383261.html