一、通过try...execpt从句处理异常
#!/usr/bin/python #coding=utf-8 stockInfoList = ["12580", "65535"] try: stockInfoList.remove("123456") except: print("can't remove from list") try: 2 + "error" #函数参数类型不正确时会触发 except TypeError: print("type error") def divide(x, y): try: return x/y except(ZeroDivisionError, TypeError, Exception) as e: print(e) divide(1, "1") divide(1, 0) 笔记: 1、当在try部分出现异常后,抛出的异常会被except从句捕获并进行处理,处理之后就能继续执行except之后的程序语句。 2、可以在except从句中通过参数来指定except从句能捕获和处理哪一类或者多类异常。测试效果:
二、通过raise语句直接抛出异常
#!/usr/bin/python #coding=utf-8 def divide(x, y): if y==0: raise Exception("Divisor is 0") try: return x/y except (TypeError): raise Exception("Parameters Type Error") try: print(divide(1, 0)) except (Exception) as e: print(e) try: print(divide(1, "1")) except (Exception) as e: print(e) print("following job") 笔记: 1、通过raise可以抛出自定义异常信息。测试运行:
三、finally从句
#!/usr/bin/python #coding=utf-8 def func(): try: print("func") return "return func" finally: print("finally") return "return finally" print(func()) 笔记: 1、不管发生异常或否,或者不管发生何种异常,finally程序语句都会被执行到。 2、若将finally后的return语句注释掉,程序将会执行try中的return语句。测试运行:
(没有注释:)
(注释:)