#Author:'haijing' #date:2018/10/27 # try: # #代码块 逻辑 # pass # except Exception as e: # #上述代码块如果出错,自动执行当前快的内容 # pass # # while 1: # try: # inp = input('请输入序号:') # i = int(inp) # except Exception as e: #一旦出错会将错误信息创建一个类Exception,对象名字叫e,即e就是类Exception的对象 # print(e) #输出错误信息 # i = 1 # print(i) #如果输入数字,那么正确的执行try中的内容,如果输入的是字母,那么去执行except中的代码 li = [1,2.3] li[999] #错误类型:IndexError 如果把Exception换成IndexError,那么就不会去识别别的错误信息 int('qwer') #错误类型:ValueError 如果把Exception换成ValueError,那么就不会去识别别的错误信息,直接出现错误页面 #Exception可以捕获所有错误 #IndexError和ValueError只能捕获各自的错误 #IndexError和ValueError只是Exception的一个子类 #还有很多子类 #一般情况下,先让子类上,最后老大再上 try: pass except ValueError as e: print('ValueError',e) except IndexError as e: print('IndexError',e) except Exception as e: #以上小弟解决不了了,那么老大再去上 print('Exception',e) else: print('else') finally: print('finally') #如果try中的内容出错,那么就会去执行exception中的内容; # 如果try中的内容不出错,那么就会去执行else中的内容 (try中正确的内容也会执行的) #不管try中出不出错,都会去执行finally中的内容
#--------------主动触发异常 raise方法----------------# ****** # try: # raise Exception('不过了...') #主动去触发异常 # except Exception as e: # print(e) #这样try中的内容和except中的内容都会去执行 ***** #--------------主动触发异常的应用----------------# # def db(): # # return True #表示执行成功 # return False #表示执行失败 # def index(): # try: # result = db() # if not result: #表示db()没有执行成功 # raise Exception('数据库处理错误') #主动去触发异常,将错误信息保存到Exception类中去,对象名字为e # except Exception as e: # str_error = str(e) #拿到错误信息:数据库处理错误,并将错误信息转换为字符串 # print(str_error) #这里可以将str_error写入到日志中 # # index() #--------------自定义异常,用到了__str__()方法----------------# #以前 class oldbayError(Exception): def __init__(self,msg): self.message = msg def __str__(self): return self.message obj = oldbayError('xxx') print(obj) #打印xxx #现在 class oldbayError(Exception): def __init__(self,msg): self.message = msg def __str__(self): return self.message try: raise oldbayError('我错了...') #相当于创建对象e = oldbayError('xxx') except Exception as e: print(e) #执行e对象的__str__()方法,获取返回值之后再打印 (print()方法的执行步骤) #--------------断言assert方法----------------# # assert+条件 如果条件成立那么执行下一句,如果条件不成立,那么程序会报错,终止执行代码 print(23) assert 1==2 #程序会终止在这里 强制用户服从 print(456) haijng in HZ 你在远方的山上 春分十里 2018.10.28 中