异常处理
''' 代码报错一般有两种: 语法错误 逻辑错误 语法错误是不能容忍的 逻辑错误,是可以容忍的 报错内容分为三部分 报错类型 报错信息 报错位置 ''' # try: # # name # d = {'name':'asd'} # d['choice'] # except NameError: # print('NameError') # except KeyError: # print('KeyError') ''' 发送错误后,会立即停止执行代码 执行except语句,对比发送错误的类型 ''' # try: # name # d = {'name':'asd'} # d['choice'] # except Exception as e: # 把错误信息赋值给变量名e # print(e) # Exception, BaseException 这两个是万能捕获异常 能捕获所有类型错误 # try: # name # d = {'name':'asd'} # d['choice'] # except NameError as e: # 把错误信息赋值给变量名e # print(e) # else: # print('代码没有错误时,会执行else的代码') # finally: # print('不管代码有没有错,都会执行这段代码')
主动抛出异常
# 主动抛出异常 # tank = 'dsb' # if tank == 'sb': # print('tank真帅') # else: # raise Exception
断言
# 断言 l = [1,2,3] assert len(l) > 4 # 断言判断某个数据状态,猜对了就继续执行下面的代码,没猜对直接报错
自定义异常
# 自定义异常 # class MyError(BaseException): # def __init__(self, msg): # super().__init__() # self.msg = msg # # def __str__(self): # return '%s' %self.msg # # # raise MyError('自定义的异常') # 主动抛出异常其实就是将异常类对象打印出来,需要走__str__方法