python中raise方法用法详解

本文介绍了Python中raise语句的使用,用于在程序中手动抛出异常。通过示例代码展示了如何在try-except结构中使用raise引发和重新抛出异常,以及无参数raise引发的默认异常类型。强调了raise语句与try-except配合在异常处理中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python允许我们在程序中手动设置异常,使用 raise 语句即可。

raise 语句的基本语法格式为:

raise [exceptionName [(reason)]]

        其中,用 [] 括起来的为可选参数,其作用是指定抛出的异常名称,以及异常信息的相关描述。如果可选参数全部省略,则 raise 会把当前错误原样抛出;如果仅省略 (reason),则在抛出异常时,将不附带任何的异常描述信息。

raise 语句引发的异常通常用 try except(else finally)异常处理结构来捕获并进行处理。

示例代码1:

try:
    a = input("输入一个数:")
    # 判断用户输入的是否为数字
    if (not a.isdigit()):
        raise ValueError("a 必须是数字")
except ValueError as e:
    print("引发异常:", repr(e))
    print("引发异常:", str(e))

运行结果:

注意:  raise 抛出的异常会被 try 捕获,并由 except 块进行处理。

更多关于repr()用法详见博文:python中repr()函数用法详解_IT之一小佬的博客-CSDN博客

示例代码2:

try:
    a = input("输入一个数:")
    if (not a.isdigit()):
        raise ValueError("a 必须是数字")
except ValueError as e:
    print("引发异常:", repr(e))
    raise

运行结果:

 注意:这里重点关注位于 except 块中的 raise,由于在其之前我们已经手动引发了 ValueError 异常,因此这里当再使用 raise 语句时,它会再次引发一次。

示例代码3:

try:
    a = input("输入一个数:")
    if (not a.isdigit()):
        raise
except RuntimeError as e:
    print("引发异常:", repr(e))

运行结果:

注意:当在没有引发过异常的程序使用无参的 raise 语句时,它默认引发的是 RuntimeError 异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值