目录
概念
Error
Exception
异常类的继承关系
1.python异常处理一
2.精确捕获异常类型
3.python异常处理二
4. 主动抛出异常
什么是异常什么是错误:错误代码不可运行,异常代码可以运行 错误不可被处理,异常可以被处理
错误(Error) 通常是指程序的语法错误或逻辑错误,例如拼写错误、语法错误、缩进错误等。这些错误在程序运行前就会被检测到, 并且会抛出一个SyntaxError或者IndentationError等错误类型。
异常(Exception) 则是指程序在运行过程中可能发生的错误,例如除零错误、文件不存在错误、输入输出错误等。 这些异常会在程序运行时被检测到,并且会抛出一个相应的异常类型。在编写程序时,我们可以使用try-except语句来捕获这些异常, 并且在异常发生时进行处理,使程序不会崩溃。
异常: 相当于'正常'而言,异常是一种代码"错误"(非致命性错误)现象 异常处理: 当一些异常出现后,进行对应的处理,解决异常问题, 使得程序能够继续执行下去,而不是直接终止。 异常处理提高软件的容错能力
异常类的继承关系:(由上到下一次继承) objcet BaseException 所有异常和错误的总类 Exception TypeError ValueError KeyError DividezeroError 等
try:
# 有可能出现的异常语句
except:
# 如果捕获到异常,则会进入except中处理异常
else:
# 不出现异常时执行else,及正常执行时执行else
finally:
# finally中的代码,不管有没有发生异常,都是必须要执行的代码
try: # 有可能出现的异常代码 except 异常类型 as 变量名: print(变量名) 处理语句 例:
list_data = [1, 2, 3]
try:
1 / 0
# list_data[4]
# data2
except Exception as i:
print(i)
# 对以上三个分别进行测试结果为
"""
1/0->division by zero
list_data[4]->list index out of range
data->name 'data2' is not defined
"""
try:
# 要执行的语句(多条语句,所以可能出现某些情况下出现一种异常
# 在另一些情况下,出现另一种异常,也有可能有其他情况)
# 在出现不同异常的时候要做出不同的处理
except 异常1:
# 处理异常1
except 异常2:
# 处理异常2
except 异常3:
# 处理异常3
except Exception:
# 未预知的异常情况
excl:
# 不出现异常时执行,及正常执行
finally:
# finally中的代码,不管有没有发生异常,都是必须要执行的代码
# 如资源回收、垃圾处理,链接的释放,等重要的工作
raise关键字:抛出异常对象 例:当data = 1 时抛出异常 ZeroDivisionError
try:
data = 1
raise ZeroDivisionError
except ZeroDivisionError:
print("ZeroDivisionError")
多个异常执行相同的操作需要精确捕获:
list_data = [1, 2, 3, 4]
try:
data2
# 1 / 0
# list_data[5]
except(ZeroDivisionError,NameError, IndexError):
print("相同的操作")