Python异常-1

作者: 技术老男孩 | 来源:发表于2023-01-03 10:21 被阅读0次

    一、异常的定义:

    • 程序在运行时,如果Python 解释器遇到 到一个错误,会停止程序的执行,并且提示一些错误信息,这就是异常

    • 异常是因为程序出现了错误,而在正常控制流以外采取的行为,这个行为又分为两个阶段:

      • 首先是引起异常发生的错误
      • 然后是检测(和采取可能的措施)阶段

    二、异常的语法格式:

    • try-except 语句
    • 注意:当捕捉到异常后,会继续执行后续代码
    try:
        n = int(input('number: '))  # 没有输入任何值,回车,产生ValueError异常
        print(n)
    except ValueError:
        print('无效的输入')  # 当异常ValueError发生时,执行print()
    

    关键词:except

    • 使用多个except的try语句,实现异常参数
    • 使用as进行异常别名:except ValueError as e
    • 还可以使用as的别名直接打印异常信息内容
    try:
        n = int(input('number: '))    
        print(n)
    except ValueError as e:  # 当异常ValueError发生时,将异常信息赋值给变量e
        print('无效的输入', e)  # print(), 打印异常信息
    except KeyboardInterrupt:    
        print('\nBye-bye')
    except EOFError:            
        print('\nBye-bye')
    
    • 多个异常使用同一种处理方式:except (Ex1, Ex2,......):
    • 使用except Exception来处理兜底异常:
    try:
        n = int(input('number: '))    
        print(n)
    except ValueError as e:        
        print('无效的输入', e)       
    except (KeyboardInterrupt, EOFError):  # 使用except捕获多个异常  
        print('\nBye-bye')
    except Exception as e: # 兜底方案
        print(e)
    

    关键词:else

    • try范围中没有异常被检测到时,执行else子句
    • else范围中的任何代码运行前,try中的所有代码必须完全成功
    # else子句的使用
    try:  # 有可能发生异常的代码块
        n = int(input('number: '))
    except ValueError as e:  # 当异常ValueError发生时,将异常信息赋值给变量e
        print('无效的输入', e)  # print(), 打印异常信息
    except (KeyboardInterrupt, EOFError):   
        print('\nBye-bye')
    else:  # 当不发生异常时,要执行的代码块
        print(n)
    

    关键词:finally

    • finally子句是 无论异常是否发生,是否捕捉都会执行的一段代码
    • finally子句一般放在try子句的最后
    • 一般在关闭资源的场景会使用,例如文件资源,可以保证文件总是能正常的关闭
    # finally子句的使用
    try:                            # 有可能发生异常的代码块
        n = int(input('number: '))
    except ValueError as e:         # 当异常ValueError发生时,将异常信息赋值给变量e
        print('无效的输入', e)        # print(), 打印异常信息
    except (KeyboardInterrupt, EOFError):   
        print('\nBye-bye')
        exit()                      # 退出程序
    else:                           # 当不发生异常时,要执行的代码块
        print(n)
    finally:                        # 不管异常是否发生都会执行代码块
        print('Done')
    

    相关文章

      网友评论

        本文标题:Python异常-1

        本文链接:https://www.haomeiwen.com/subject/aaqpqdtx.html