python中的异常处理

  在编程过程中我们并不希望用户看到许多的错误报警,特别是报警的源代码,交互很不友好,所以在除了自己进行调试过程之外,应尽可能的避免出现一场代码,就引入了异常处理这个机制。

常见的错误

异常 描述
NameError 尝试访问一个没有申明的变量
ZeroDivisionError 除数为0
SyntaxError 语法错误
IndexError 索引超出序列范围
KeyError 请求一个不存在的字典关键字
IOError 输入输出错误(比如你要读的文件不存在)
AttributeError 尝试访问未知的对象属性
ValueError 传给函数的参数类型不正确,比如给int()函数传入字符串形

使用python中内置的错误进行判断:  

异常处理的格式:

try:
        "可能错误的表达式"
except "错误类型" as e:
        print("有%s这个错误"%e)
except Exception:#其他任意错误类型
    print("非指定错误")
else:
    print("一切正常")

  

 

自定义错误:

class JiangException(Exception):#无法对自带的错误进行覆盖,但尽量避免去使用。
    def __init__(self,msg):
        self.message = msg

    def __str__(self):
        return self.message


try:
    raise JiangException("自定义错误")#raise语句触发异常
except JiangException as e:
    print(e)
finally:#finally是无论是否出现该异常均要执行。
print("不管怎么样我都要打印"

assert type(..) is int#断言,保护之后的代码,严格行
print(....)

  

posted @ 2017-08-25 08:39  KeepLearning_!  阅读(190)  评论(0编辑  收藏  举报