Python/python try except
来自菜鸟教程
<languages />
Python尝试除
The
try
块使您可以测试代码块是否存在错误。
The
except
块可让您处理错误。
The
finally
块使您可以执行代码,而不管try-和except块的结果如何。
异常处理
当发生错误或我们所说的异常时,Python通常会停止并生成错误消息。
这些异常可以使用
try
声明:
例
The
try
块将生成异常,因为
x
没有定义:
try: print(x) except: print("An exception occurred")
由于try块引发错误,因此将执行except块。
没有try块,程序将崩溃并引发错误:
例
该语句将引发错误,因为
x
没有定义:
print(x)
许多例外
您可以根据需要定义任意数量的异常块,例如如果要为特殊类型的错误执行特殊代码块:
例
如果try块引发一个消息,则打印一条消息
NameError
另一个是其他错误:
try: print(x) except NameError: print("Variable x is not defined") except: print("Something else went wrong")
Else
你可以使用
else
关键字,用于定义在未引发错误的情况下要执行的代码块:
例
在这个例子中,
try
块不会产生任何错误:
try: print("Hello") except: print("Something went wrong") else: print("Nothing went wrong")
最后
The
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()
程序可以继续运行,而无需打开文件对象。
提出例外
作为Python开发人员,您可以选择在条件发生时引发异常。
要抛出(或引发)异常,请使用
raise
关键词。
例
如果x小于0,则引发错误并停止程序:
x = -1 if x < 0: raise Exception("Sorry, no numbers below zero")
The
raise
关键字用于引发异常。
您可以定义引发哪种错误,以及向用户显示文本。
例
如果x不是整数,则引发TypeError:
x = "hello" if not type(x) is int: raise TypeError("Only integers are allowed")