目录
异常处理
一、异常处理
二、else搭配
三、finally语句
四、引发异常
异常处理
try块可让您测试代码块的错误。except块可让您处理错误。finally无论 try- 和 except 块的结果如何,该块都允许您执行代码。
一、异常处理
例如该try块将产生异常,因为x未定义:
try:print(x)
except:print("An exception occurred")
返回
由于 try 块引发错误,因此将执行 except 块。如果没有 try 块,程序将崩溃并引发错误。
二、else搭配
else如果没有出现错误,您可以使用关键字来定义要执行的代码块:
try:print("Hello")
except:print("Something went wrong")
else:print("Nothing went wrong")
返回:
三、finally语句
finally如果指定了该块,则无论 try 块是否引发错误,都将执行该块。
例如:
try:print(x)
except:print("Something went wrong")
finally:print("The 'try except' is finished")
返回:
这对于关闭对象和清理资源很有用。
例如尝试打开并写入不可写的文件:
try:f = open("demofile.txt")f.write("Lorum Ipsum")
except:print("Something went wrong when writing to the file")
finally:f.close()
程序可以继续,而无需打开文件对象。
四、引发异常
要抛出(或引发)异常,请使用raise关键字。
例如如果 x 小于 0,则引发错误并停止程序:
x = -1if x < 0:raise Exception("Sorry, no numbers below zero")
返回:
该raise关键字用于引发异常。您可以定义要引发的错误类型以及要打印给用户的文本。
例如如果 x 不是整数,则引发 TypeError:
x = "hello"if not type(x) is int:raise TypeError("Only integers are allowed")
返回