python异常处理

异常处理的目的:

# 1、不希望遇到异常就退出
# 2、 如果遇到异常希望做特殊处理,而不是直接退出程序

 常见的异常

NameError

python异常处理_第1张图片

 缩进的语法错误 IndentationError

python异常处理_第2张图片

 IndexError

python异常处理_第3张图片

 SyntaxError 语法错误

python异常处理_第4张图片

KeyError  键值错误 

python异常处理_第5张图片

 AttributeError

python异常处理_第6张图片

 ValueError

python异常处理_第7张图片

 AssertionError 断言异常

python异常处理_第8张图片

 try  except 语句

except 可以有多个

# Exception  是很多异常类的基类
# 如果父类异常捕获放在最前面,就会吞噬后面所有的子类异常捕获
# 如果捕获的错误异常与触发的错误异常不一致,程序就捕获不到,然后抛出异常
try:
    print("start...")
    #实际不存在这个文件,如果存在则会执行这一步,不存在则会执行except
    fp = open("test.txt")
    print("end....")
except:
    print("no such file ")
try:
    print("start...")
    int("abc")
    a = 100 / 0
    # 内建异常
except ValueError as e:
    print(e)
except ZeroDivisionError:
    print("除数为0")
except Exception:
    print("this is exception")
print("prcoess end ....")

else结构  --没有任何异常发生的时候执行   finally 结构--不管有没有异常,不管异常有没有被捕获,都执行

try:
    print("else test...")
    int("abc")
except ValueError:
    print("value error")
else:
    print("else test end...")

python异常处理_第9张图片

 

try:
    print("finally test...")
    int("abc")
    # 1/0
except ValueError:
    print("value error")
# 无论什么情况也要执行
finally:
    print("finally end...")

 python异常处理_第10张图片

 手动抛出异常

# 手动抛出异常
# raise 关键字
# raise
# raise 异常类
# raise 异常类(说明信息)

 

raise IndexError
raise IndexError("超出范围")
print("end raise..")

你可能感兴趣的:(python,python,开发语言)