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")