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