![](https://i-blog.csdnimg.cn/blog_migrate/f5d8666c8813946ac3d12e1ddadae025.png)
每种编程语言都有其处理异常和错误的方式,Python 也不例外。
Python 带有内置try…except语法,您可以使用它来处理错误并阻止它们中断程序的运行。
在本文中,您将学习如何使用该try…except语法来处理代码中的异常,这样它们就不会阻止您的程序运行。
我们将涵盖的内容
什么是异常?
语法try…except_
如何处理异常try…except
如何打印异常try…except
如何打印异常名称
结论
什么是异常?
在 Python 中,异常是错误对象。Windows 10 家庭版产品密钥序列密钥免费它是在程序执行期间发生的错误,并使程序停止运行——随后显示一条错误消息。
当异常发生时,Python 会创建一个异常对象,其中包含错误类型及其影响的行。
Python 有许多内置异常,例如IndexError, NameError, TypeError, ValueError,ZeroDivisionError KeyError等等。
语法try…except_
您可以将要运行的代码放在一个try块中,并在该块中处理异常,而不是让这些异常阻止您的程序运行except。
的基本语法try…except如下所示:
try:
# code to run
except:
# handle error
如何处理异常try…except
您可以使用 处理本文中提到的每个异常try…except。事实上,您可以使用try…except.
例如,如果您有一个大型程序并且您不知道某个标识符是否存在,您可以在块中执行您想要对标识符执行的操作并处理块中可能出现的try错误except:
try:
print("Here's variable x:", x)
except:
print("An error occured") # An error occured
您可以看到运行是因为代码中except没有调用变量。x
继续阅读。因为我将通过向您展示如何优雅地处理异常来向您展示如何使这些错误看起来更好。
如何打印异常try…except
但是如果你想打印发生的确切异常怎么办?Exception您可以通过将 分配给关键字前面的变量来做到这一点except。
当您执行此操作并将 Exception 打印到终端时,它就是Exception您获得的值。
这就是我将ZeroDivisionError异常打印到终端的方式:
try:
res = 190 / 0
except Exception as error:
# handle the exception
print("An exception occurred:", error) # An exception occurred: division by zero
这也是我打印NameError异常的方式:
try:
print("Here's variable x:", x)
except Exception as error:
print("An error occurred:", error) # An error occurred: name 'x' is not defined
您可以按照此模式将任何异常打印到终端。
如何打印异常名称
如果您想获取确切的异常名称并将其打印到终端怎么办?这也是可能的。您需要做的就是使用type()函数获取异常的类型,然后使用__name__属性获取异常的名称。
这就是我修改示例ZeroDivisionError以打印确切异常的方式:
try:
res = 190 / 0
except Exception as error:
# handle the exception
print("An exception occurred:", type(error).__name__) # An exception occurred: ZeroDivisionError
这就是我修改另一个示例以打印NameError示例的方式:
try:
print("Here's variable x:", x)
except Exception as error:
print("An error occurred:", type(error).__name__) # An error occurred: NameError
NameError通常,当您遇到诸如and之类的异常时ZeroDivisionError,您会以这种方式在终端中得到错误:
![](https://i-blog.csdnimg.cn/blog_migrate/9c421a83c73b9ef886a25b4213425035.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/8424d9ea590c530b53ae55eb7b5bea10.jpeg)
您可以组合该type()函数和该错误变量以使异常看起来更好:
try:
print("Here's variable x:", x)
except Exception as error:
print("An error occurred:", type(error).__name__, "–", error) # An error occurred: NameError – name 'x' is not defined
try:
res = 190 / 0
except Exception as error:
# handle the exception
print("An exception occurred:", type(error).__name__, "–", error) # An exception occurred: ZeroDivisionError – division by zero
结论
如本文所示,try…except语法是处理错误和防止程序在执行期间停止的好方法。
您甚至可以Exception通过将错误分配给变量来将其打印到终端,并Exception使用该type()函数获取确切的类型。