异常就是程序运行时发生错误的信号(在程序出现错误时,则会产生一个异常,若程序没有处理它,则会抛出该异常,程序的运行也随之终止
python
在python中不一样的异常能够用不一样的类型(python中统一了类与类型,类型即类)去标识,一个异常标识一种错误
code
为了保证程序的健壮性与容错性,即在遇到错误时程序不会崩溃,咱们须要对异常进行处理
it
若是错误发生的条件是可预知的,咱们须要用if进行处理:在错误发生以前进行预防
io
若是错误发生的条件是不可预知的,则须要用到try...except:在错误发生以后进行处理
class
#基本语法为 try: 被检测的代码块 except 异常类型: try中一旦检测到异常,就执行这个位置的逻辑
1.异常类只能用来处理指定的异常状况,若是非指定异常则没法处理。语法
s1 = 'hello' try: int(s1) except IndexError as e: # 未捕获到异常,程序直接报错 print(e)
2.多分支程序
s1 = 'hello' try: int(s1) except IndexError as e: print(e) except KeyError as e: print(e) except ValueError as e: print(e) invalid literal for int() with base 10: 'hello'
3.万能异常Exception异常
s1 = 'hello' try: int(s1) except Exception as e: print(e)
4.多分支异常与万能异常异常处理
5.也能够在多分支后来一个Exceptionsse
s1 = 'hello' try: int(s1) except IndexError as e: print(e) except KeyError as e: print(e) except ValueError as e: print(e) except Exception as e: print(e)
6.异常的最终执行
s1 = 'hello' try: int(s1) except IndexError as e: print(e) except KeyError as e: print(e) except ValueError as e: print(e) #except Exception as e: # print(e) else: print('try内代码块没有异常则执行我') finally: print('不管异常与否,都会执行该模块,一般是进行清理工做')
try: raise TypeError('抛出异常,类型错误') except Exception as e: print(e)
assert 1 == 1 try: assert 1 == 2 except Exception as e: print(e)