23、异常 raise-assert-with

1、raise语句
作用

 触发一个错误,让程序进入异常状态

语法

    raise  异常类型
    或
    raise  异常对象

def make_exception(n):
#假设n必须是0-100的整数
print(“begin…”)
#触发ValueError类型的异常并进入异常状态
#raise 异常类型

if n > 100:
raise ValueError
#raise 异常对象
if n < 0:
raise ValueError(“这是我自己定义的一个错误”)

print(“end”)

value = int(input(“请输入一个整数:”))
try:
make_exception(value)
print(“make_exception调用结束”)
except ValueError as e:
print(“try里出现了值错误通知,已捕获!!!”)
print("接收的异常通知是: ", e)

2、assert函数
语法

assert 真值表达式,错误数据(通常是字符串)

作用

当真值表达式为False时,用错误数据创建一个 AssertionError 类型的错误,并进入异常状态
等同于:
if 真值表达式 == False:
raise AssertionError(错误数据)

def get_score():
s = int(input("请输入学生成绩: "))
#用assert语句来断言s是否在 0~100之间
assert 0 <= s <= 100, “用户输入的整数不在>>0~100之间”
return s
try:
score = get_score()
print(“学生成绩为:”, score)
except ValueError:
print(“用户输入的成绩无法转化为整数”)
except AssertionError as err:
print(“发生了断言错误,原因是:”, err)

3.with语句(高级)
语法

with 表达式1 [as 变量1],表达式2 [as 变量2], …:
语句块
作用

    使用于对资源进行访问的场合,确保使用过程中不管是否发生异常,都会执行必须的'清理'操作,并释放资源
    如: 文件使用后自动关闭,线程中锁的自动获取和释放等

说明

a、执行表达式 用as 子句中的变量绑定生成的对象
b、with 语句并不会改变异常的状态,通常在最外层加try-except语句

src_file = input("请输入源文件: ")
dst_file = input("请输入目标文件: ")

try:
with open(src_file, ‘rb’) as src:
#准备打开别一个文件
with open(dst_file, ‘wb’) as dst:
#开始读写文件
b = src.read()
dst.write(b)

except OSError:
print(“复制失败”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值