首页 > 编程语言 >Python语言学习讲解十九: 异常信息的详细获取

Python语言学习讲解十九: 异常信息的详细获取

时间:2023-04-25 15:33:12浏览次数:43  
标签:division modulo exc Python traceback 讲解 print integer 十九




由于近期忙着手游发布,所以这几天没有及时更新望各位学者见谅。年底了,各大公司特别是游戏行业都着手赶年底末班车,给用户一个新年的礼物。在项目中出现了一些异常日志,但是并没有记录到详细的错误信息。特别是报错在哪一个文件哪一行等信息。

[python]  view plain  copy



    1. >>> try:  
         1/0  
     except Exception,e:  
         print e
    
    
         
     integer division or modulo by zero2.


    输出结果是integer division or modulo by zero,只知道是报了这个错,但是却不知道在哪个文件哪个函数哪一行报的错。

    下面使用traceback模块

    [python]  view plain  copy

      1. >>> import traceback
       >>> try:  
           1/0  
       except Exception,e:  
           traceback.print_exc()
      
      
           
       Traceback (most recent call last):
         File "<pyshell#20>", line 3, in <module>
       ZeroDivisionError: integer division or modulo by zero2.

      输出结果是

      Traceback (most recent call last):

      File "test_traceback.py", line 3, in <module>

      1/0





      ZeroDivisionError: integer division or modulo by zero

      这样非常直观有利于调试。

      traceback.print_exc()跟traceback.format_exc()有什么区别呢?

      format_exc()返回字符串,print_exc()则直接给打印出来。

      即traceback.print_exc()与print traceback.format_exc()效果是一样的。

      print_exc()还可以接受file参数直接写入到一个文件。比如

      traceback.print_exc(file=open('tb.txt','w+'))

      写入到tb.txt文件去。

      [python]  view plain  copy

        1. >>> try:  
             1/0  
         except Exception,e:  
             print e
        
        
             
         integer division or modulo by zero2.

        输出结果是integer division or modulo by zero,只知道是报了这个错,但是却不知道在哪个文件哪个函数哪一行报的错。

        下面使用traceback模块

        [python]  view plain  copy



          1. >>> import traceback
           >>> try:  
               1/0  
           except Exception,e:  
               traceback.print_exc()
          
          
               
           Traceback (most recent call last):
             File "<pyshell#20>", line 3, in <module>
           ZeroDivisionError: integer division or modulo by zero2.





          输出结果是



          Traceback (most recent call last):



          File "test_traceback.py", line 3, in <module>

          1/0









          ZeroDivisionError: integer division or modulo by zero



          这样非常直观有利于调试。






          traceback.print_exc()跟traceback.format_exc()有什么区别呢?



          format_exc()返回字符串,print_exc()则直接给打印出来。



          即traceback.print_exc()与print traceback.format_exc()效果是一样的。



          print_exc()还可以接受file参数直接写入到一个文件。比如



          traceback.print_exc(file=open('tb.txt','w+'))



          写入到tb.txt文件去。

          标签:division,modulo,exc,Python,traceback,讲解,print,integer,十九
          From: https://blog.51cto.com/u_16081664/6224150

          相关文章

          • python读取文件创建时间
            #获取文件时间(浮点数格式)csv_time=os.path.getmtime("C:/Users/DELL/Desktop/20000/allqueryCommodity.csv")print("csv_time",csv_time)#结果:1682402963.033327#把浮点数格式格式转成格式化格式local_time=time.localtime(csv_time)print("local_time",local_tim......
          • Python中的时间格式的读取与转换(time模块)
            一、时间的表示格式在Python中,表示时间的格式有4种较为常用,分别是浮点数格式、标准可读格式、格式化格式以及自定义格式。(名字是自己起的,非官方命名)(1)浮点数格式用一个float格式的浮点数表示时间,其具体含义表示为从世界标准纪元时间(1970年1月1日)起算至该时间节点的秒数。(2)标准......
          • Python tkinter界面
            #文档C:/Users/Administrator/AppData/Local/Programs/Python/Python311/Doc/html/library/tk.html#TIP:如果不想要cmd,扩展名py改为pywfromtkinterimport*fromtkinter.ttkimport*#窗口tk=Tk()tk.title("联安通达audio/default.ini配置工具V0.0.1")tk.geom......
          • (完结篇)Python web框架FastAPI——一个比Flask和Tornada更高性能的API 框架
            今日鸡汤借问酒家何处有,牧童遥指杏花村。0前言    前几天给大家分别分享了(入门篇)简析Pythonweb框架FastAPI——一个比Flask和Tornada更高性能的API框架和(进阶篇)Pythonweb框架FastAPI——一个比Flask和Tornada更高性能的API框架。今天欢迎大家来到FastAPI系列分享的完结篇......
          • python 修改服务器网卡信息
            importosimportreimportnetifacesimportsubprocessclassNetWorkConfig:def__init__(self):pass@staticmethoddefcheck_network_isvalid(ip,netmask,gateway,dns):"""判断用户输入的网络配置是否可用:pa......
          • python 相关
            python判断文件是否存在os.path.exists(file_path):python多线程p1=threading.Thread(target=down)t1=threading.Thread(target=crawl)print("启动")p1.start()t1.start()print("join")p1.join()t1.join()python多线程与redis控制多线程的数量whileTr......
          • python编程基础
            Python并不是一门新的编程语言,1991年就发行了第一个版本,2010年以后随着大数据和人工智能的兴起,Python又重新焕发出了耀眼的光芒。在2019年12月份世界编程语言排行榜中,Python排名第三,仅次于Java和C语言。Python是一门开源免费的脚本编程语言,它不仅简单易用,而且功能强大......
          • 分享Python采集88个NET电子商务源码,总有一款适合您
            Python采集的88个NET电子商务源码下载链接:百度网盘请输入提取码 提取码:c0gh编辑众筹系统(RaiseDreams众筹梦想)V2.1.6云点滴客户关系管理CRMOA系统V1.02.13云点滴客户解决方案V1.0.0创想商务B2B网站管理系统V3.1冰兔(Btoo)网店系统V6.39ASP.NET4.0电子商城MVC+EF水果市场2......
          • windows环境下emacs的python简单配置
            首先参考了上一篇《emacs极简配置》,我的想法是打开兼容vim的viper到5级,然后一些基本的字体设定,然后如何执行python文件的一个全过程方法。1、先打开emacs,如果忘了怎么用了,看一下自带的教程,还是中文的,超级方便。2、学完后,键入C-xC-f并按~,这样就会打开默认的配置文件所在的目录......
          • Python之peewee|4-22
            frompeeweeimport*db=MySQLDatabase('my_database',user='xxx',password='P@x',host='xxxxxx',port=3306)classUser(Model):name=CharField()email=CharField()classMeta:......