返回顶部
  • 482
分享到

调试

2023-01-31 00:01:25 482人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

来源:python编程快速上手——Al Sweigart   1 抛出异常 抛出异常相当于是说:“停止运行这个函数中的代码,将程序执行转到 except 语句”。 抛出异常使用 raise 语句。在代码中,raise 语句包含一下部分:

来源:python编程快速上手——Al Sweigart

 

1 抛出异常

抛出异常相当于是说:“停止运行这个函数中的代码,将程序执行转到 except 语句”。

抛出异常使用 raise 语句。在代码中,raise 语句包含一下部分:

  • raise 关键字
  • 对 Exception 函数的调用
  • 传递给 Exception 函数的字符串,包含有用的出错信息

Ex:   

1 try:
2     raise Exception('This is the error message.')
3 except Exception as err:
4     print('An exception happened: ' + str(err))

out: An exception happened: This is the error message.

 

2 取得反向跟踪的字符串

只要抛出的异常没有被处理,Python 就会显示反向跟踪。也可以调用 traceback.fORMat_exc(),得到它的字符串形式。

如果希望得到异常的反向跟踪的信息,同时希望except 语句优雅地处理该异常,这个函数就很有用。在调用之前需要先导入 traceback 模块。

Ex:

 1 import traceback
 2 try:
 3     raise Exception('This is the error message.')
 4 except:
 5     errorfile = open('errorInfo.txt', 'w')
 6     errorfile.write(traceback.format_exc())
 7     errorfile.close()
 8     print('The traceback info was written to errorInfo.txt.')
 9 
10 out: The traceback info was written to errorInfo.txt.
11 
12 errorInfo.txt:
13 
14 Traceback (most recent call last):
15   File "d:\Code\Python\test.py", line 3, in <module>
16     raise Exception('This is the error message.')
17 Exception: This is the error message.

 

3 断言

“断言” 是一个心智正常的检查,确保代码没有做什么明显错误的事情。这些心智正常的检查由 assert 语句执行。如果检查失败,就会抛出异常。

在代码中,assert 语句包含以下部分:

  • assert 关键字
  • 条件(即求值为 True 或 False 的表达式)
  • 逗号
  • 当条件为 False 时显示的字符串

Ex:

 1 test = 'open'
 2 assert test == 'open', 'The test need to be "open"'  #条件为True, 语句正常执行
 3 test = 'close'
 4 assert test == 'open', 'The test need to be "open"'
 5 
 6 out:
 7 Traceback (most recent call last):
 8   File "d:\Code\Python\test.py", line 4, in <module>
 9     assert test == 'open', 'The test need to be "open"'
10 AssertionError: The test need to be "open"

禁用断言:

如果已完成程序的编写和测试,不希望执行心智正常检测,从而减慢程序的速度,可以禁用断言。

禁用方法:在python或python3之后和.py文件之前加上-O开关。这将运行程序的优化版本,跳过断言检查。

 

4 日志

简单使用

 1 import logging
 2 
 3 logging.debug('debug message')
 4 logging.info('info message')
 5 logging.warn('warn message')
 6 logging.error('error message')
 7 logging.critical('critical message') 
 8 
 9 out:  WARNING:root:warn message
10       ERROR:root:error message
11       CRITICAL:root:critical message
12 
13 #默认情况下,logging模块将日志打印到屏幕上(stdout)
14 #日志级别为WARNING(即只有日志级别高于WARNING的日志信息才会输出)
15 #日志级别大小关系为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET

简单配置

 1 import logging
2 logging.basicConfig: logging.basicConfig(level=logging.DEBUG, 3 format='%(asctime)s %(filename)s[line:%(lineno)d]%(levelname)s %(message)s', 4 datefmt='%a, %d %b %Y %H:%M:%S', 5 filename='myapp.log', 6 filemode='w') 7 ''' 8 logging.basicConfig函数各参数: 9 filename: 指定日志文件名 10 filemode: 和file函数意义相同,指定日志文件的打开模式,'w'或'a' 11 format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所示: 12   %(levelno)s: 打印日志级别的数值 13   %(levelname)s: 打印日志级别名称 14   %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0] 15   %(filename)s: 打印当前执行程序名 16   %(funcName)s: 打印日志的当前函数 17   %(lineno)d: 打印日志的当前行号 18   %(asctime)s: 打印日志的时间 19   %(thread)d: 打印线程ID 20   %(threadName)s: 打印线程名称 21   %(process)d: 打印进程ID 22   %(message)s: 打印日志信息 23 datefmt: 指定时间格式,同time.strftime() 24 level: 设置日志级别,默认为logging.WARNING 25 stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略 26 '''

几个重要的概念:

  •     Logger 记录器,暴露了应用程序代码能直接使用的接口。
  •     Handler 处理器,将(记录器产生的)日志记录发送至合适的目的地。
  •     Filter 过滤器,提供了更好的粒度控制,它可以决定输出哪些日志记录。
  •     Formatter 格式化器,指明了最终输出中日志记录的布局。

禁用日志

在程序中添加logging.disable(logging.CRITICAL)

 

5 IDLE 的调试器

要启用IDLE 的调试器,就在交互式环境窗口点击 Debug > Debugger。

 


2019-03-2812:46:59

--结束END--

本文标题: 调试

本文链接: https://lsjlt.com/news/181583.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 调试
    来源:python编程快速上手——Al Sweigart   1 抛出异常 抛出异常相当于是说:“停止运行这个函数中的代码,将程序执行转到 except 语句”。 抛出异常使用 raise 语句。在代码中,raise 语句包含一下部分: ...
    99+
    2023-01-31
  • python 调试
    设断点,打印需要的信息:print xxoosys.exit()...
    99+
    2023-01-31
    python
  • Python中怎么实现调试器调试
    今天就跟大家聊聊有关Python中怎么实现调试器调试,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。PyDev 就能显示出一个超链接,这样您可以在导入库或函数的源代码之间导航。请注意,...
    99+
    2023-06-17
  • JavaScript调试之console.log调试的示例分析
    这篇文章将为大家详细讲解有关JavaScript调试之console.log调试的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言对于JavaScript程序的...
    99+
    2024-04-02
  • 如何使用 Golang 调试器调试函数?
    使用 dlv 调试器,可以通过以下步骤调试函数:安装 dlv设置断点(dlv break funcname)启动调试器(dlv debug)运行程序(dlv continue)检查变量(...
    99+
    2024-04-17
    go 调试 git golang
  • GDB调试MySQL
    GDB主要帮助你完成下面四个方面的功能: ...
    99+
    2024-04-02
  • vscode调试php
    vscode下载三个插件:中文插件、PHP Debug、PHP lntelliSense。 打开phpstudy–>找到软件管理–>找到对应的php版本–>设置按钮–>扩展组件 --> 打开 XDeb...
    99+
    2023-09-01
    php vscode 开发语言
  • VIM PYTHON 调试
      python << EOF  import time  import vim  def SetBreakpoint():      nLine = int( vim.eval( 'line(".")'))      strL...
    99+
    2023-01-31
    VIM PYTHON
  • python 调试器
    python 调试器:使用 pdb 进行调试pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。pdb 提...
    99+
    2023-01-31
    调试器 python
  • PHP调试 - XDebug
    文章目录 安装Xdebug【Windows版本】 下载Xdebug 配置Xdebug 将php_xdebug.dll放到php的ext目录...
    99+
    2023-10-28
    PHP XDebug PHP调试 PHP Debug
  • 怎么调试golang程序?调试工具介绍
    Golang是一种现代化的编程语言,非常适合用于开发高效、可靠、安全和高性能的应用程序。不过,在开发Golang应用程序的过程中,很难避免出现错误和问题,需要使用调试工具来定位和解决这些问题。调试Golang应用程序的常用工具包括以下几种:...
    99+
    2023-05-14
  • PHP中如何实现调试和错误调试?
    在PHP中,调试和错误调试是开发过程中不可或缺的一部分。调试和错误调试可以帮助开发人员快速识别和解决应用程序中的错误,从而提高应用程序的稳定性和可靠性。本文将介绍PHP中如何实现调试和错误调试。一、错误调试在PHP应用程序中,错误可能会发生...
    99+
    2023-05-14
    调试工具 PHP调试 PHP错误调试
  • 如何使用远程调试调试 Golang 函数?
    golang 函数中使用远程调试的步骤如下:在程序中启用监听: import _ "net/http/pprof"构建并运行程序: go run -listen=0....
    99+
    2024-04-18
    golang 远程调试 intellij idea
  • PyCharm怎么debug调试_PyCharm调试debug的方法
    首先,进行打开一个需要进行调试的代码,进行再当前来进行编辑。 在当前的代码进行编辑的完成,进行点击 run 菜单。 进行点击了run之后,弹出了下拉菜单选中为 debug 的选项。 ...
    99+
    2024-05-10
    pycharm
  • Emacs调试中GUD调试器的特性是什么
    Emacs调试中GUD调试器的特性是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。下面简短地对 Emacs 的调试工具 GUD 的特性进行了探索。如果你是一...
    99+
    2023-06-16
  • ASP.NET 调试的革命:Glimpse 调试工具的影响
    ...
    99+
    2024-04-02
  • socket调试工具、socket调试软件、tcp调试工具、tcp调试软件(sokit),C#sokit工具包及其sokit使用说明
    sokit真的非常好用,可做服务端,可做客户端 sokit是一款非常简单易用的tcp、udp调试工具,主要适用于专业的网络管理使用,它可以轻松查看网内的数据情况,能够有效地接收、发送、转发TCP或UDP数据包。 一、TCP调试说明   1...
    99+
    2023-08-31
    tcp/ip 网络 服务器
  • MongoDB安装调试
    安装 去mongodb的官网http://www.mongodb.org/downloads下载32bit的包   解压后会出现以下文件   在安装的盘C:下建立mongodb文件夹,拷贝bin文件夹到该目录下,这样就相当于安装了mongo...
    99+
    2017-04-08
    MongoDB安装调试
  • ES6如何调试
    小编给大家分享一下ES6如何调试,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!调试我们经常使用 console.log()来进行...
    99+
    2024-04-02
  • gocodereview代码调试
    目录ExamplesGoroutine LifetimesHandle ErrorsimportImport BlankImport DotIn-Band ErrorsIndent ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作