python - 使用异常处理进行调试
问题描述
我正在 Pycharm 上用 Python 编写程序。为了调试我的程序中的异常,我使用了这个技巧:
_DEBUG = True # False
try:
# my code
except Exception as e:
logger.error(e.message)
if _DEBUG:
raise # keeps the stack trace, can conveniently debug with Pycharm
# do something else that handles the exception
现在,这种方法有几个问题,我认为来自将源代码更改为调试:
- 存在无意中提交
_DEBUG
标志的风险 - 每次拉取更改时,都会发生冲突,因此我需要将
_DEBUG
标志设置为False
,将它们设置回True
,然后返回调试 _DEBUG_<FUNCTIONALITY>
在代码中包含所有这些感觉有点“hacky”- 我需要制作
_DEBUG
标志保护变量以避免在导入模块时覆盖它们,但是如果我正在调试的功能被拆分到许多文件中,我需要_DEBUG
跨文件复制该标志并将它们全部设置True
为调试。
我认为理想情况下,这些标志将在调试器中而不是在源代码中:例如,询问调试器“每当捕获到与此功能相关的错误时引发”可能比更改源代码以将所有相关标志设置为True
.
有没有更好的方法来调试 Pycharm 捕获的异常?
解决方案
推荐阅读
- ios - 检查 UIImage 的子部分是亮还是暗
- html - div 没有显示
- ios - 为什么我看到白屏?
- ctags - ctags:文件名下划线,源代码行为零:这是哪个变体?
- ios - 多个自定义 UITableView 单元格,“无法将 'UITableViewCell (0x1e0487910) 类型的值转换为 'Page_Contents.CardCell' (0x105b89be8)”
- python - 气流条件调度
- ssis - 如何更改 SSIS 包中的平面文件连接管理器“文件名”表达式值?
- discord.py-rewrite - 不和谐.py | 保存用户头像
- encoding - 无法通过 GSM 调制解调器(诺基亚 C1-02)在 SMS 中发送 @ 字符
- javascript - 滚动时动态更改导航栏颜色