Python 异常处理 - 最佳实践

2024-03-29

我正在编写一个访问数据库的 python 程序。我想在发出 http 请求时捕获三种类型的异常。超时、网络错误和 http 错误。我正在寻找处理这种情况的最佳方法。我需要在代码的多个区域多次检查这些异常,每次都会看起来像这样:

try:

   //some request

except timeout:
    print '\nException: Timeout Error'

except connection error:
    print '\nException: Network Error'

except http error, e:
    print 'Exception: %s.' % e

由于我必须多次执行此操作,至少可能 8 次或更多,我是否应该创建一个模块来处理这些异常?另外,在哪种情况下,建议关闭我的系统而不是仅显示消息?

谢谢。


如果你不想使用装饰器,你也可以组合所有的 except 语句,并使用一些函数来处理你的异常(假设你的错误被称为 TimeoutError、ConnectionError 和 HttpError...为了清晰起见,这并不重要) IE。

try:
   # do stuff
except (TimeoutError, ConnectionError, HttpError) as e:
   handle_exception(e)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 异常处理 - 最佳实践 的相关文章

  • 多重处理:如何从子进程重定向标准输出?

    注意 我见过multiprocessing Process 的日志输出 https stackoverflow com questions 1501651 log output of multiprocessing process 不幸的是
  • Python3+Kivy+Plyer 推送通知图标问题

    我在使用 Android 的简单通知测试应用程序时遇到了一个奇怪的错误 错误 python AttributeError type object notification org notificator R drawable has no
  • 为什么方法无法访问类变量?

    我试图理解Python中的变量作用域 除了我不明白为什么类变量不能从其方法访问的部分之外 大多数事情对我来说都很清楚 在下面的例子中mydef1 无法访问a 但如果a可以在全局范围 类定义之外 声明 class MyClass1 a 25
  • 如何有条件地组合两个相同形状的 numpy 数组

    这听起来很简单 但我想我把它想得太复杂了 我想创建一个数组 其元素是从两个形状相同的源数组生成的 具体取决于源数组中哪个元素更大 为了显示 import numpy as np array1 np array 2 3 0 array2 np
  • 如何在算术表达式的结果上添加 SQLAlchemy 标签?

    我如何将这样的东西翻译成 SQLAlchemy select x y as difference 我知道该怎么做 x label foo 但我不确定在哪里放置下面的 label 方法调用 select table c x table c y
  • 无法将 datetime.datetime 与 datetime.date 进行比较

    我有以下代码并收到上述错误 由于我是 python 新手 我无法理解这里的语法以及如何修复错误 if not start or date lt start start date 有一个datetime date 从日期时间转换为日期的方法
  • 对打开文件的脚本进行单元测试

    我编写了一个脚本 它打开一个文件 读取内容并进行一些操作和计算 并将它们存储在集合和字典中 我该如何为这样的事情编写单元测试 我的问题具体是 我会测试文件是否打开 文件很大 这是unix字典文件 我如何对计算进行单元测试 我真的必须手动计算
  • 如何检查包含 NaN 的列表 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 在我的 for 循环中 我的代码生成一个如下所示的列表 list 0 0 0 0 sum 0 0 0 0 该循环生成所有其他数字向量 但它也
  • 如何像在浏览器中一样检索准确的 HTML

    我正在使用 Python 脚本来呈现网页并检索其 HTML 它适用于大多数页面 但对于其中一些页面 检索到的 HTML 不完整 我不太明白为什么 这是我用来废弃此页面的脚本 由于某种原因 每个产品的链接不在 HTML 中 Link http
  • 将具有不同大小的行的数据加载到 Numpy 数组中

    假设我有一个包含如下数据的文本文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 如何将它加载到 numpy 数组中 使其看起来像这样 1 2 3 4 5 0 6 7 8 0 0 0 9 1
  • 从 python 中的缩进文本文件创建树/深度嵌套字典

    基本上 我想迭代一个文件并将每行的内容放入一个深层嵌套的字典中 其结构由每行开头的空格数量定义 本质上 目标是采取这样的事情 a b c d e 并将其变成这样的东西 a b c d e Or this apple colours red
  • 如何将reportlab与Google应用程序引擎一起使用

    我无法在谷歌应用程序引擎下正确导入reportlab 根据以下guide http blog notdot net 2010 04 Generating PDFs on App Engine Python and introducing M
  • 在 Python 中,如何获取特定文件中定义的类列表?

    如果一个文件myfile py包含 class A object Some implementation class B object Some implementation 我如何定义一个方法 以便在给定的情况下myfile py 它返回
  • 与函数复合 UniqueConstraint

    一个快速的 SQLAlchemy 问题 我有一个 文档 类 其属性为 数字 和 日期 我需要确保没有重复的号码同年 是 有没有办法对 数字 年份 日期 进行UniqueConstraint 我应该使用唯一索引吗 我如何声明功能部分 SQLA
  • 将参数传递给 __enter__

    刚刚学习 with 语句尤其是这篇文章 http effbot org zone python with statement htm 问题是 我可以传递一个参数给 enter 我有这样的代码 class clippy runner def
  • python 中的基本矩阵转置

    我尝试了 python 中矩阵转置的最基本方法 但是 我没有得到所需的结果 接下来是代码 A 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 print A def TS A B A for i in range len A
  • Scikit Learn - K-Means - 肘部 - 标准

    今天我想学习一些关于 K means 的知识 我已经了解该算法并且知道它是如何工作的 现在我正在寻找正确的 k 我发现肘部准则作为检测正确的 k 的方法 但我不明白如何将它与 scikit learn 一起使用 在 scikit learn
  • 如何表示类的实例与将其作为输入的类之间的关系?

    我有一堂课叫House 这个类的实例是house class House def init self height length self height height self length length def housePlan hou
  • Windows 与 Linux 文本文件读取

    问题是 我最近从 Windows 切换到 Ubuntu 我的一些用于分析数据文件的 python 脚本给了我错误 我不确定如何正确解决 我当前仪器的数据文件输出如下 Header 有关仪器等的各种信息 Data 状态 代码 温度 字段等 0
  • Python“self”关键字[重复]

    这个问题在这里已经有答案了 我是 Python 新手 通常使用 C 最近几天开始使用它 在类中 是否需要在对该类的数据成员和方法的任何调用前添加前缀 因此 如果我在该类中调用方法或从该类获取值 我需要使用self method or sel

随机推荐

  • 将 Azure 网站连接到 Xero 合作伙伴应用程序

    我正在将我的应用程序与 Xero 集成 这需要两个证书 我在以下人员的帮助下将它们上传到 Azurethis https azure microsoft com en us blog using certificates in azure
  • HTML 使文本可点击,而不使其成为超链接

    我想添加这样的功能 可以选择单击某些 HTML 文本并执行正确的 JavaScript 代码 我怎样才能做到这一点 对于语义我会使用
  • AWS ECR CF 模板失败并显示“提供的存储库策略无效”

    此 CF 模板失败 MyECSrepo Type AWS ECR Repository Properties RepositoryName Ref RepoName RepositoryPolicyText Version 2012 10
  • Shiny - 到 mainPanel 的多个输出

    Shiny 似乎只接受任何提供给的最终输出mainPanel in ui R An 较早的问题 https stackoverflow com questions 22996434 adding more than one graph to
  • 在 Firefox 中使用 -moz-transform 选择框焦点错误

    我注意到 如果我在 Firefox 中对选择框焦点 即 select focus 应用变换 它首先会聚焦选择框 然后您必须再次单击选择框才能真正下拉 还有其他人经历过这个吗 我尝试在 Mozilla 上寻找错误 但没有发现任何东西 Webk
  • 使用 Rails 包括对儿童的条件

    我有一个模型Parent有很多孩子Child 我想要获取所有父模型并展示每个Child也是父母的 这是 Rails 的经典用例includes方法 据我所知 但是 我无法让 Rails 在不将父模型限制为具有子模型的情况下向子模型添加条件
  • 检查文件是否存在 [BASH]

    如何检查 bash 中文件是否存在 当我尝试这样做时 FILE1 OPTIND 1 if e FILE1 then echo requested file doesn t exist gt 2 exit 1 elif
  • 在php中将文本转换为图像[重复]

    这个问题在这里已经有答案了 我想设置从表单字段获取的文本字符串的样式 然后将其转换为透明的 PNG alpha BG 这可以用 PHP 实现吗 如果是这样 请告诉我如何实现这一点 是的 这很有可能 您将遵循与我们在生成验证码图像时相同的技术
  • WordPress:用于提取特色图像 URL 的 REST API 插件

    我已在博客上安装了 WordPress REST API 插件 我想使用它将博客文章中的内容提取到另一个网站内的面板窗口中 文本内容没问题 但我不确定是否能获取 特色图片 URL 我想要 URL 这样我就可以将其存储在变量中 然后将其用作面
  • 无法连接到任何 X 显示器:Google Colab 运行时

    我现在正在研究分类问题 并尝试在线完成所有工作 而无需访问本地计算机 因此 我已将数据添加到驱动器并将驱动器安装在 Colab 上 现在我想注释我的数据并决定使用LabelImg https github com tzutalin labe
  • 在 App Engine 数据存储区中查找重复项

    我的数据存储区中有一些重复的元素 不是整行 而是其中的大部分字段 找到他们的最佳方式是什么 我有重复的整数和字符串字段 以防比较一个比另一个更快 Thanks 一种愚蠢但快速的方法是获取您关心的字段 将它们连接为长字符串并将它们存储为DB
  • 如何将新字体导入项目 - Angular 5

    我想将新字体导入到我的 Angular 5 项目中 我努力了 1 将文件复制到assets fonts 2 将其添加到 angular cli json styles 但我检查过该文件不是 css 它是一个 otf这就像一个 exe 它是一
  • 多人浏览器游戏 [Java]

    我一直在开发一个名为 Tarneeb 的小型纸牌游戏 游戏本身看起来像桥牌游戏 但规则不同 无论如何 我使用 Java 6 作为独立的桌面应用程序完成了整个游戏 这是一个picture http photos g ak fbcdn net
  • python argparse 在描述后打印用法文本

    有没有办法使用 python argparse 在描述文本后打印用法文本 我的命令行 argparse 正在工作 但我想在使用信息之前打印版本信息 Edit version 1 0 usage blahcmd h help some lov
  • 为什么 LocalBroadcastManager 无法在服务中工作?

    我使用了服务 但没有收到任何广播消息 需要快速反应 这是我使用的意图过滤器字符串 public class AppConstant public static final String FILTER com sample hmi REQUE
  • 重叠的极坐标图和散点图

    感谢这非常有帮助post https stackoverflow com questions 9071084 polar contour plot in matplotlib best modern way to do it 我终于弄清楚如
  • 如何监控每个scroll Id的scroll API使用的资源?调用clearScroll Api 时会发生什么

    如何监控每个滚动 ID 的滚动 API 使用的内存资源或搜索上下文 这些搜索上下文存储在哪里 有办法查看或监控它们吗 java api 的参数 keepAlive 意味着什么 public SearchRequest roll TimeVa
  • 嵌套推送动画iOS7 bug?

    我刚刚在经过错误测试的应用程序中遇到了问题 我把头撞到墙上才明白为什么会出现这个错误 2013 11 25 09 02 55 687 186 60b nested push animation can result in corrupted
  • 将原始文件复制到 SD 卡中?

    我的里面有一些音频文件res raw文件夹 由于某些原因 我想将此文件复制到我的 SDCard 当我的应用程序启动时 我怎样才能做到这一点 有人指导我吗 从资源中读取 写入SD卡上的文件 InputStream in getResource
  • Python 异常处理 - 最佳实践

    我正在编写一个访问数据库的 python 程序 我想在发出 http 请求时捕获三种类型的异常 超时 网络错误和 http 错误 我正在寻找处理这种情况的最佳方法 我需要在代码的多个区域多次检查这些异常 每次都会看起来像这样 try som