python异常介绍 try 主动抛出异常 断言
异常
python;gutter:true;">\'\'\'异常是程序运行过程中发生的非正常情况, 是一个错误发生时的信号
异常如果没有被正确处理的话, 将导致程序被终止, 这对于用户体验是非常差的, 可能导致严重的后果
处理异常的目的就是提高程序的健壮性
\'\'\'
常见异常
TypeError: \'int\'object is not subscriptable
对象不能被切片
TypeError: \'list\'object is not callable
对象不能被调用
IndexError: list index out of range索引超出范围
TypeError: \'builtin_function_or_method\'object is not iterable
对象不能被迭代
KeyError: \'xxx\'不存在这个key
FileNotFoundError: [Errno 2]No such file or directory: \'xxxxx\'
文件找不到
异常处理
# 语法:try:
可能会出现异常的代码
放到try里面
except 具体异常类型 as e:
如果真的发生异常就执行except
try:正常的操作
......................
except:
发生异常,执行这块代码
......................
else:
如果没有异常执行这块代码
try-finally 语句
try-finally 语句无论是否发生异常都将执行最后的代码。
try:<语句>
finally:
<语句> #退出try时总会执行
raise
try:fh = open("testfile", "w")
fh.write("这是一个测试文件,用于测试异常!!")
finally:
print "Error: 没有找到文件或读取文件失败"
主动抛出异常
我们可以使用raise语句自己触发异常
raise语法格式如下:
raise [Exception [, args [, traceback]]]
def functionName( level ):if level < 1:
raise Exception("Invalid level!", level)
# 触发异常后,后面的代码就不会再执行
断言assert
Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。
断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况,可以先判断当前系统是否符合条件。
语法格式如下:
assert expression
等价于:
if not expression:raise AssertionError
assert 后面也可以紧跟参数:
assert expression [, arguments]
等价于:
if not expression:raise AssertionError(arguments)
以上是 python异常介绍 try 主动抛出异常 断言 的全部内容, 来源链接: utcz.com/z/389119.html