繁体   English   中英

在python中进行异常处理时正确的行号

[英]Correct Line number when doing exception handling in python

我目前使用这种结构来捕获和记录我的异常处理

1.  import sys
2.
3.  def break_python():
4.      test1 = 1/0
5.
6.  def main():
7.     #All main program functionality is included in this section
8.     break_python()
9.  
10. if __name__ == "__main__":
11.     try:
12.         main()
13.     except Exception as e:
14.         print dir(e)
15.         print e.message
16.         type1,details,tb = sys.exc_info_()
17.         print type1
18.         print details
19.         print tb
20.         line_no = tb.tb_lineno
21.         print "Line # " + str(line_no)
22.         print "Failed to run program"

当我将其作为我的主程序结构运行时,一切正常,但是当我真的希望它指向单个错误的函数和行号时,该行号将显示为与main()函数调用相对应的第12行4在功能break_python()下

我认为您正在寻找traceback.print_exc(file=sys.stdout)参见https://docs.python.org/2/library/traceback.html#traceback-examples

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM