python中raise方法用法详解
  TEZNKK3IfmPf 2023年11月13日 37 0

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))

运行结果:

python中raise方法用法详解

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

更多关于repr()用法详见博文:python中repr()函数用法详解_IT

示例代码2:

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

运行结果:

python中raise方法用法详解

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

示例代码3:

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

运行结果:

python中raise方法用法详解

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

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   40   0   0 python开发语言
  TEZNKK3IfmPf   2024年05月31日   28   0   0 python
  TEZNKK3IfmPf   2024年05月31日   35   0   0 excelpython
  TEZNKK3IfmPf   2024年05月31日   31   0   0 python
TEZNKK3IfmPf