一、异常的定义:
- 步调在运行时,如果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') |