【Python】【异常的获取与处理】
2021-04-22 21:35
标签:number python recent lazy img ror frame 对象 信息 一、traceback模块(import traceback) 1. traceback.print_exc() # 直接打印出来 traceback.print_exc(file=open("test.txt","a+") # 若没有test.txt文件,则新建一个,写入调试信息,若存在,则在后面追加 2.traceback.print_expection() #返回字符串 3.traceback.format_expection(type,value,tb[,limit]) # 格式化栈信息和异常信息,返回一个列表,包括代码文件和代码行,以及异常信息。 4.traceback.extract_tb(traceback,[,limit]) # 返回一个跟踪对象traceback的元祖列表,元组内容为(filename.line number, function name, text)。 二、sys模块 sys.exc_info() ,返回值是一个三元组(type,value/message,traceback),其中type表示异常的类型,value/message表示异常的信息或者参数,而traceback则包含调用栈信息的对象。sys.exc_info()可以直接定位最终引发异常的原因,结果比较简洁,但是缺点是难以直接确定引发异常的代码位置。 具体实践例子 #1 #2 #3 #5 [‘Traceback (most recent call last):\n‘, ‘ File "D:/WorkSpace/untitled/1.py", line 20, in #6 [ 【Python】【异常的获取与处理】 标签:number python recent lazy img ror frame 对象 信息 原文地址:https://www.cnblogs.com/yuhuang/p/13268977.htmlimport sys
def divnum(a,b):
c=a/b
return c
try:
print(divnum(2,0))
except:
print(sys.exc_info()) ##1,
print(traceback.print_exc()) ##2
print(traceback.print_exception()) ##3,返回字符串
traceback.print_exc(file=open("test.txt","a+") ##4 若没有test.txt文件,则新建一个,写入调试信息,若存在,则在后面追加
exc_type,exc_value,exc_traceback=sys.exc_info
print(traceback.format_exception(exc_type,exc_value,exc_traceback)) ## 5
print(traceback.extract_tb(exc_traceback)) ## 6(