raise 语句是用来 主动 抛出一个指定的异常。
raise语法格式:raise [Exception [, args [, traceback]]]
raise 主动抛出异常种类总结:
- except 有 匹配的error 类型
- except 无 匹配的error 类型
- 自定义error
- 未捕获异常,程序报错
# #################################### # 主动抛出异常,except 进行异常匹配 try: raise Exception('错误了。。。') except Exception as e: print(e) # #################################### # 按照顺序检查except,先匹配那个就先用哪个 try: raise IndexError('错误了。。。') except ValueError: print("ValueError") except Exception as e: print(e) # #################################### # 按照顺序检查except,先匹配那个就先用哪个 try: a=2 if a > 1: raise ValueError('值大于1') except ZeroDivisionError: print("ZeroDivisionError") except ValueError: print("ValueError") except Exception: print("Exception") # #################################### # 自定义error 需继承自 Exception 类,可以直接继承,或者间接继承 class WupeiqiException(Exception): def __init__(self, msg): self.message = msg def __str__(self): return self.message try: raise WupeiqiException('我的异常') except WupeiqiException as e: print(e) class MyError(Exception): def __init__(self, value): self.value = value def __str__(self): return repr(self.value) try: raise MyError(2*2) except MyError as e: print('exception:', type(e)) print('My exception occurred, value:', type(e.value)) # #################################### # 抛出的异常与except不匹配,报错 try: x = 10 if x > 5: raise Exception('x 不能大于 5。x 的值为: {}'.format(x)) except ZeroDivisionError: print("Exception") # 有异常,报错 x = 10 if x > 5: raise Exception('x 不能大于 5。x 的值为: {}'.format(x))
标签:__,Exception,raise,python,self,except,print From: https://www.cnblogs.com/songshutai/p/16788533.html