龙空技术网

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

Beetester视野 169

前言:

如今我们对“python中捕获异常”大概比较珍视,我们都想要了解一些“python中捕获异常”的相关文章。那么小编在网上搜集了一些有关“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, TypeError):

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中捕获异常