python中异常的类都继承自BaseException类
-
普通异常处理
例如:
try: print('----') print(a)//这行有误 except NameError as aa: print(aa) ---- name 'a' is not defined
-
Exception类及其子类
try: 0/0 except SyntaxError: print('语法错误') except NameError: print('名字错误') except ZeroDivisionError: print('分母不能为0') except Exception://如果上面列举的错误没有就走这里 print('未知错误') 分母不能为0 try: print('000') except SyntaxError: print('语法错误') except NameError: print('名字错误') except ZeroDivisionError: print('分母不能为0') except Exception: print('未知错误') else: print('没有错误就走这里') finally: print('不管有没有错,都要走这里') 000 没有错误就走这里 不管有没有错,都要走这里
-
自定义异常类
自定义的异常类必须继承自Exception class Test(Exception): def error(self, name): if name == 'liping': print('对头') else: 当需要时,抛出这个类 raise Test; try: test = Test() test.error('ll') //捕获这个异常 except Test: print('名字有问题') except NameError: print('----') except Exception: print('未知错误') 名字有问题
-
断言 assert
a = 1 b = 2 //断言,当条件不满足时崩溃 assert a == b print(a, b) assert a == b AssertionError