【自动化测试必学语言】python:异常

目录

异常捕获【重点】

基本语法

捕获多个指定类型的异常

异常捕获的完整版本

异常传递【了解】


程序在运行时,如果 Python 解释器 遇到到⼀个错误,会停止程序的执行,并且提示⼀些错误信息,这就是 异常
程序停止执行并且提示错误信息这个动作,抛出异常(raise 关键字)
捕获异常:程序遇到异常,默认动作是终止代码程序的执行,遇见异常之后,可以使用异常捕获,让程序代码继续运行,不会终止运行(重点)

异常捕获【重点


基本语法

try :
书写可能发生异常的代码
except : # 任何类型的异常都能捕获
发生了异常执行的代码
try :
书写可能发生异常的代码
except 异常类型 : # 只能捕获指定类型的异常, 如果不是这个异常, 还是会报错
发生了异常执行的代码
try:
    # 1. 获取⽤户从键盘输⼊的数据
    num = input('请输⼊数字:')
    # 2. 转换数据类型为整数
    num = int(num)
    # 3. 输出转换之后的数据内容
    print(num)
except:
    print('请输⼊正确的数字')
    print('后续其他的代码,可以继续执⾏')

try:
    # 1. 获取⽤户从键盘输⼊的数据
    num = input('请输⼊数字:')
    # 2. 转换数据类型为整数
    num = int(num)
    # 3. 输出转换之后的数据内容
    print(num)

except ValueError: # 只能捕获 ValueError 类型及其⼦类的异常
    print('发⽣了异常, 请输⼊正确的数字...')

捕获多个指定类型的异常

好处可以针对不同的异常错误进行单独的代码处理。

try :
书写可能发生异常的代码
except 异常类型 1 : # 只能捕获指定类型的异常, 如果不是这个异常, 还是会报错
发生了异常 1 执行的代码
except 异常类型 2 :
发生了异常 2 执行的代码
except 异常类型 ...:
发生了异常 ... 执行的代码
try:
    # 1. 获取⽤户从键盘输⼊的数据
    num = input('请输⼊数字:')
    # 2. 转换数据类型为整数
    num = int(num)
    # 3. 输出转换之后的数据内容
    print(num)
    a = 10 / num # 10 / 0
    print(f'a: {a}')

except ValueError: # 只能捕获 ValueError 类型及其⼦类的异常
    print('发⽣了异常, 请输⼊正确的数字...')
except ZeroDivisionError:
    print('除数不能为 0')

异常捕获的完整版本

完整版本中的内容 不是说每⼀次都要全部书写 根据自己的需要 去选择其中的进行使用。
try :
可能发生异常的代码
except 异常类型 1 :
发生异常类型 1 执行的代码
# Exception 是常见异常类的父类, 这里书写 Exception, 可以捕获常见的所有⼀会,as 变量, 这个变量是⼀个异常类的对象,print( 变量 ) 可以打印异常信息
except Exception as 变量 :
发生其他类型的异常 执行的代码
else :
没有发生异常会执行的代码
finally :
不管有没有发生异常 都会执行的代码
try :
可能发生异常的代码
except Exception as e :
发生异常执行的代码
try:
    # 1. 获取⽤户从键盘输⼊的数据
    num = input('请输⼊数字:')
    # 2. 转换数据类型为整数
    num = int(num)
    # 3. 输出转换之后的数据内容
    print(num)
    a = 10 / num # 10 / 0
    print(f'a: {a}')

except Exception as e:
    print(f"错误信息为: {e}")
else:
    print('没有发⽣异常我会执⾏')
finally:
    print('不管有没有发⽣异常,我都会执⾏')
    # print('不管有没有发⽣异常,我都会执⾏')

异常传递【了解】


  • 异常传递是 Python 中已经实现好了我们不需要操作我们知道异常会进行传递.
  • 异常传递在函数嵌套调用的过程中被调用的函数,发生了异常如果没有捕获会将这个异常向外层传递. .... 如果传到最外层还没有捕获才报错。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值