Python异常-1

分享
程序员 2024-10-1 09:29:34 108 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')
您需要登录后才可以回帖 登录 | 立即注册

Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )

GMT+8, 2024-12-4 16:27, Processed in 0.174775 second(s), 32 queries.© 2003-2025 cbk Team.

快速回复 返回顶部 返回列表