python捕获分类:
1、明确类型进行捕获
d={ "a":1}try: d["key"]except KeyError as e: #只能捕获keyerror这一种错误 print('出错了')
try: 1/0 d['key']except ZeroDivisionError as e: #捕获ZeroDivisionError这一种错误 print("error")C:\Users\zhaow\AppData\Local\Programs\Python\Python37\python.exe D:/study/python/test/dd.pyerror
d={ "a":1}try: #当try中有多个错误是,根据位置在前的错误会报错走捕获,后面的错误捕获不再进行输出 d['key'] 1/0except ZeroDivisionError as e: #捕获ZeroDivisionError这一种错误 print("error")except KeyError as e: #只能捕获keyerror这一种错误 print('出错了')C:\Users\zhaow\AppData\Local\Programs\Python\Python37\python.exe D:/study/python/test/dd.py出错了 #因为keyerror的错误在前,所以程序走了其捕获异常代码,未走获ZeroDivisionError这个捕获
2、未明确类型进行统一捕获
try: 1/0except KeyError as e: #只能捕获一种错误 print("error")C:\Users\zhaow\AppData\Local\Programs\Python\Python37\python.exe D:/study/python/test/dd.pyTraceback (most recent call last): File "D:/study/python/test/dd.py", line 89, in1/0ZeroDivisionError: division by zero
try: 1/0except Exception as e: #捕获任何错误 print("error")C:\Users\zhaow\AppData\Local\Programs\Python\Python37\python.exe D:/study/python/test/dd.pyerror
try: d[9]except Exception as e: #捕获任何错误 print('error')C:\Users\zhaow\AppData\Local\Programs\Python\Python37\python.exe D:/study/python/test/dd.pyerror
3、捕获错误带分支逻辑
try: a='000'except Exception as e: #当有错误运行这里的代码 print('error')else: #当没有捕获到错误就运行这里的代码 print('无错误走这里')C:\Users\zhaow\AppData\Local\Programs\Python\Python37\python.exe D:/study/python/test/dd.py无错误走这里
try: a=bexcept Exception as e: #当有错误运行这里的代码 print('有错误运行这里')else: #当没有捕获到错误就运行这里的代码 print('无错误走这里')C:\Users\zhaow\AppData\Local\Programs\Python\Python37\python.exe D:/study/python/test/dd.py有错误运行这里
4、捕获带finally
try: a=bexcept Exception as e: #当有错误运行这里的代码 print('有错误运行这里')else: #当没有捕获到错误就运行这里的代码 print('无错误走这里')finally: #出错还是不出错程序都会运行这里的代码 print('出错还是不出错我肯定是要运行的')C:\Users\zhaow\AppData\Local\Programs\Python\Python37\python.exe D:/study/python/test/dd.py有错误运行这里出错还是不出错我肯定是要运行的
try: a=1except Exception as e: #当有错误运行这里的代码 print('有错误运行这里')else: #当没有捕获到错误就运行这里的代码 print('无错误走这里')finally: #出错还是不出错程序都会运行这里的代码 print('出错还是不出错我肯定是要运行的')C:\Users\zhaow\AppData\Local\Programs\Python\Python37\python.exe D:/study/python/test/dd.py无错误走这里出错还是不出错我肯定是要运行的
5、异常的输出
import tracebacktry: a=aexcept Exception as e: print(e) #输出具体的错误内容print('=====================')try: a=aexcept Exception as e: print(traceback.format_exc()) #输出详细的错误内容C:\Users\zhaow\AppData\Local\Programs\Python\Python37\python.exe D:/study/python/test/dd.pyname 'a' is not defined=====================Traceback (most recent call last): File "D:/study/python/test/dd.py", line 94, ina=aNameError: name 'a' is not defined