一、错误与异常
1、错误:语法错误、逻辑错误
2、异常:程序运行时发生错误的信号
二、异常处理
1、什么是异常处理:
程序运行时,如有可预知的错误,用if判断,如果错误不可预知,就会崩溃,此时将不可预知可能发生错误的代码块进行异常处理。
程序员编写特定的代码,去捕捉异常,如捕捉成功进入到另外一个处理分支,使程序不崩溃。
2、为何要进行异常处理:
防止程序异常崩溃,必须提供一种异常处理机制来增强程序的健壮性和容错性。
3、如何处理异常:
try except :
1、python为每一种异常定制了一种类型;
2、异常类只能用来处理指定异常,如非指定异常则无法处理;
3、如可能出现多个异常,就用多分枝处理,多个except捕捉异常;
4、捕捉到异常后,执行分支代码,发生异常代码后面的代码不再执行;
5、Exception 万能异常,捕捉任何异常;
(3)else 如果没哟异常,执行else后面的代码块
(4)finally 无论是否有异常,都执行finally后面的代码块,通常是执行清理工作
4、主动触发异常:
raise typeError(‘类型错误’)
5、自定义异常:
异常本质就是一个类,继承BaseException 或继承Except
6、断言
assert 1==2
7、是么时候用异常处理
尽量少用,只有在有些异常无法预知的情况下才用。
自定义异常
1、如何自定义异常类?
2、如何主动抛出异常?
3、如何捕获异常?
class MyException(Exception):
def __init__(self, code, msg):
self.code = code
self.msg = msg
try:
raise MyException(1000,'操作异常')
except KeyError as obj:
print(obj)
except MyException as obj:
print(obj)
except Exception as obj:
print(obj)
常见的异常类型
# ValueError
# int('aaa')
# NameError
# name
# IndexError
# l = [1,2,3]
# l[100]
# KeyError
# d = {}
# d['key']
#
# AttributeError
# class Foo:
# pass
#
# Foo.xx
# ZeroDivisionError
# 1/0
# TypeError
# for i in 3:
# pass
# KeyboardInterrupt
# import time
# time.sleep(100)入代码片