python - 每个裸露的“除了”都可以转换成更好的东西吗?
问题描述
我正在努力使用以下代码。我的目标是检查是否arg
可以执行 which is a string 来决定不同的返回值。
def process(arg):
try:
return eval(arg)
except:
return arg
Pycharm 告诉我不要使用裸露的“除外”,但我找不到一个好的选择。我也想知道这是否是另一种选择?
解决方案
如果您只是使用except
,那么您会捕获从 BaseException 继承的所有内容,包括 KeyboardInterrupt 之类的内容。这可能不是您想要的。很有可能您最终会掩盖您真正想知道的错误情况。
本页讨论了捕获所有异常的潜在好处——记录异常(例如在程序或模块的顶层)并立即重新引发它。关于重新加注的那一点很重要,因为这意味着你没有在不应该隐藏错误的时候隐藏错误。
推荐阅读
- python - 将多个 csv 文件从网站导入谷歌云平台/存储的最佳方式
- aframe - 是否有可用于 A-Frame 的实例化组件来优化具有许多重复对象的场景?
- c# - C# 做(不)调用事件
- reactjs - 反应错误:当我尝试使用按钮进行条件渲染时,重新渲染过多
- javascript - 为什么布尔值仅在用 if/else 语句括在引号中时才起作用?
- r - R - 一个数字在多个可变数量的模具上的概率
- python - 使用 xpath text() 函数从子元素/节点中提取所有文本
- rust - 错过了基于使用对计数器变量的引用的优化
- javascript - JSON 中的 HTML 表每行仅显示 1 个字符
- python - 如何从 Python 打印出 .predict_proba 返回的数据内容