您的位置 首页 java

Python 捕获错误和异常的多种类型

1 什么是异常

异常是一个事件,该事件会在程序执行过程中发生,影响程序的正常执行,一般情况下,在 Python 无法正常处理程序时就会发生异常。Python脚本发生异常时,我们需要捕获并处理异常,否则程序会终止执行。

Python中重要的内建异常类型:

  • exception :常规错误的基类
  • AttributeError:对象没有这个属性
  • IOError:输入/输出操作失败
  • IndexError:序列中没有此索引
  • KeyError:映射中没有这个键
  • NameError:未声明/初始化对象(没有属性)
  • SyntaxError:Python语法错误
  • SystemError:一般解释器系统错误
  • ValueError:串入无效的参数

2 捕获单个异常

在程序开发中,如果对某些代码的执行不能确定是否正确,可以增加try来捕获异常,捕获异常最简单的语法格式:

try:

<语句1> # 尝试执行的代码

except <异常类型1>:

<语句2> # 如果在try部分引发了异常

比如:

def exp_exception(x, y):
try :
a = x/y
print ( “a = ” , a)
return a
except Exception :
print ( “程序出现异常,异常信息:被除数为0!” )
print (exp_exception( 6 , 0 ))

3 捕捉多个异常

捕获异常最简单的语法格式:

try:

<语句1> # 尝试执行的代码

except <异常类型1>:

<语句2> # 如果在try部分引发了异常

except <异常类型2>:

<语句3> # 如果在try部分引发了异常

比如:

def mult_exception():
try :
# 提示用户输入一个整数
num = int ( input ( “请输入一个整数:” ))
result =
8 /num
print (result)
except ZeroDivisionError :
print ( “除0错误!” )
except ValueError :
print ( “请输入正确的整数!” )
mult_exception()

4 块捕捉多个异常

指一个try对应一个except子句,同时捕捉一个以上的异常 except ( 异常类型1 ,异常类型2,……) 。比如:

def model_exception():
try :
b = name
a = x/y
except ( ZeroDivisionError , NameError , Type Error ):
print ( “z这个异常是ZeroDivisionError / NameError / TypeError” )
model_exception(
2 , 0 )

5 异常捕获的完整语法

在实际开发中,为了能够处理复杂的异常情况,完整的异常语法如下:

try:

<语句1> # 尝试执行的代码

except <异常类型1>:

<语句2> # 如果在try部分引发了异常

except <异常类型2,异常类型3>:

<语句3> # 如果在try部分引发了异常

except Exception as result:

print(“未知错误:%s” % result) # 打印错误信息

else:

<语句4> # 只有在没有异常才会执行的代码

finally:

<语句5> # 无论是否有异常,都会执行的代码

文章来源:智云一二三科技

文章标题:Python 捕获错误和异常的多种类型

文章地址:https://www.zhihuclub.com/191362.shtml

关于作者: 智云科技

热门文章

发表回复

您的电子邮箱地址不会被公开。

网站地图