如何在Python中捕获自定义异常[重复]

2023-12-27

我正在使用一个 python 库,其中在某一时刻定义了一个异常,如下所示:

raise Exception("Key empty")

我现在希望能够捕获该特定异常,但我不知道该怎么做。

我尝试了以下方法

try:
    raise Exception('Key empty')
except Exception('Key empty'):
    print 'caught the specific exception'
except Exception:
    print 'caught the general exception'

但这只是打印出来caught the general exception.

有谁知道我怎样才能捕捉到那个特定的Key empty例外?欢迎所有提示!


定义您的例外:

class KeyEmptyException(Exception):
    def __init__(self, message='Key Empty'):
        # Call the base class constructor with the parameters it needs
        super(KeyEmptyException, self).__init__(message)

Use it:

try:
    raise KeyEmptyException()
except KeyEmptyException as e:
    print e

更新:基于评论OP中的讨论:

但该库不在我的控制之下。它是开源的,所以我可以编辑它,但我最好尝试在不编辑库的情况下捕获它。那不可能吗?

说图书馆引发异常

# this try is just for demonstration 
try:

    try:
        # call your library code that can raise `Key empty` Exception
        raise Exception('Key empty')
    except Exception as e:
        # if exception occurs, we will check if its 
        # `Key empty` and raise our own exception
        if str(e) == 'Key empty':
            raise KeyEmptyException()
        else:
            # else raise the same exception
            raise e
except Exception as e:
    # we will finally check what exception we are getting
    print('Caught Exception', e)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Python中捕获自定义异常[重复] 的相关文章

  • 从 ffmpeg 获取实时输出以在进度条中使用(PyQt4,stdout)

    我已经查看了很多问题 但仍然无法完全弄清楚 我正在使用 PyQt 并且希望能够运行ffmpeg i file mp4 file avi并获取流式输出 以便我可以创建进度条 我看过这些问题 ffmpeg可以显示进度条吗 https stack
  • 如何使用 imaplib 获取“消息 ID”

    我尝试获取一个在操作期间不会更改的唯一 ID 我觉得UID不好 所以我认为 Message ID 是正确的 但我不知道如何获取它 我只知道 imap fetch uid XXXX 有人有解决方案吗 来自 IMAP 文档本身 IMAP4消息号
  • Argparse nargs="+" 正在吃位置参数

    这是我的解析器配置的一小部分 parser add argument infile help The file to be imported type argparse FileType r default sys stdin parser
  • 如何在 pytest 中将单元测试和集成测试分开

    根据维基百科 https en wikipedia org wiki Unit testing Description和各种articles https techbeacon com devops 6 best practices inte
  • 填充两个函数之间的区域

    import matplotlib pyplot as plt import numpy as np def domain x np arange 0 10 0 001 f1 lambda x 2 x x 2 0 5 plt plot x
  • 忽略 Mercurial hook 中的某些 Mercurial 命令

    我有一个像这样的善变钩子 hooks pretxncommit myhook python path to file myhook 代码如下所示 def myhook ui repo kwargs do some stuff 但在我的例子中
  • 如何计算numpy数组中元素的频率?

    我有一个 3 D numpy 数组 其中包含重复的元素 counterTraj shape 13530 1 1 例如 counterTraj 包含这样的元素 我只显示了几个元素 array 136 129 130 103 102 101 我
  • 以同步方式使用 FastAPI,如何获取 POST 请求的原始正文?

    在中使用 FastAPIsync not async模式 我希望能够接收 POST 请求的原始 未更改的正文 我能找到的所有例子都显示async代码 当我以正常同步方式尝试时 request body 显示为协程对象 当我通过发布一些内容来
  • 使用 Python pandas 计算调整后的成本基础(股票买入/卖出的投资组合分析)

    我正在尝试对我的交易进行投资组合分析 并尝试计算调整后的成本基础价格 我几乎尝试了一切 但似乎没有任何效果 我能够计算调整后的数量 但无法获得调整后的购买价格有人可以帮忙吗 这是示例交易日志原始数据 import pandas as pd
  • 从 python 发起 SSH 隧道时出现问题

    目标是在卫星服务器和集中式注册数据库之间建立 n 个 ssh 隧道 我已经在我的服务器之间设置了公钥身份验证 因此它们只需直接登录而无需密码提示 怎么办 我试过帕拉米科 它看起来不错 但仅仅建立一个基本的隧道就变得相当复杂 尽管代码示例将受
  • 如何设置 Celery 来调用自定义工作器初始化?

    我对 Celery 很陌生 我一直在尝试设置一个具有 2 个独立队列的项目 一个用于计算 另一个用于执行 到目前为止 一切都很好 我的问题是执行队列中的工作人员需要实例化一个具有唯一 object id 的类 每个工作人员一个 id 我想知
  • 奇怪的 MySQL Python mod_wsgi 无法连接到 'localhost' (49) 上的 MySQL 服务器问题

    StackOverflow上也有类似的问题 但我还没有发现完全相同的情况 这是在使用 MySQL 的 OS X Leopard 机器上 一些起始信息 MySQL Server version 5 1 30 Apache 2 2 13 Uni
  • 将 matplotlib 颜色图集中在特定值上

    我正在使用 matplotlib 颜色图 seismic 绘制绘图 并且希望白色以 0 为中心 当我在不进行任何更改的情况下运行脚本时 白色从 0 下降到 10 我尝试设置 vmin 50 vmax 50 但在这种情况下我完全失去了白色 关
  • Python 将日志滚动到变量

    我有一个使用多线程并在服务器后台运行的应用程序 为了无需登录服务器即可监控应用程序 我决定包括Bottle http bottlepy org为了响应一些HTTP端点并报告状态 执行远程关闭等 我还想添加一种查阅日志文件的方法 我可以使用以
  • mac osx 10.8 上的初学者 python

    我正在学习编程 并且一直在使用 Ruby 和 ROR 但我觉得我更喜欢 Python 语言来学习编程 虽然我看到了 Ruby 和 Rails 的优点 但我觉得我需要一种更容易学习编程概念的语言 因此是 Python 但是 我似乎找不到适用于
  • 如何在 OSX 上安装 numpy 和 scipy?

    我是 Mac 新手 请耐心等待 我现在使用的是雪豹 10 6 4 我想安装numpy和scipy 所以我从他们的官方网站下载了python2 6 numpy和scipy dmg文件 但是 我在导入 numpy 时遇到问题 Library F
  • 使用 PyTorch 分布式 NCCL 连接失败

    我正在尝试使用 torch distributed 将 PyTorch 张量从一台机器发送到另一台机器 dist init process group 函数正常工作 但是 dist broadcast 函数中出现连接失败 这是我在节点 0
  • 当鼠标悬停在上面时,intellisense vscode 不显示参数或文档

    我正在尝试将整个工作流程从 Eclipse 和 Jupyter Notebook 迁移到 VS Code 我安装了 python 扩展 它应该带有 Intellisense 但它只是部分更糟糕 我在输入句点后收到建议 但当将鼠标悬停在其上方
  • Elastic Beanstalk 中的 enum34 问题

    我正在尝试在 Elastic Beanstalk 中设置 django 环境 当我尝试通过requirements txt 文件安装时 我遇到了python3 6 问题 File opt python run venv bin pip li
  • 从 Twitter API 2.0 获取 user.fields 时出现问题

    我想从 Twitter API 2 0 端点加载推文 并尝试获取标准字段 作者 文本 和一些扩展字段 尤其是 用户 字段 端点和参数的定义工作没有错误 在生成的 json 中 我只找到标准字段 但没有找到所需的 user fields 用户

随机推荐

  • 使用 Selenium 测试 Angularjs 应用程序

    我正在测试 Angular js 应用程序 Link Angular js 应用程序 http iarouse com demo index html product square 当我单击 Web 应用程序上的 UI Kit 链接时 出现
  • Interface Builder 中的 PNG 透明度

    我在 Interface Builder 中添加一个带有透明 PNG 导航栏中的徽标 的图像视图 但透明像素似乎呈现为白色 我在 Interface Builder 中搜索了 PNG 但没有成功 有小费吗 确保视图属性的 绘图 部分中的 不
  • Git 日志:致命对象 [sha1] 已损坏

    有什么方法可以修复我的存储库并保持提交历史记录完好无损 git log fatal object 01aeb2bf2e93b238f0e0422816b3e55518321ae7 is corrupted 从阅读下面的链接来看 我似乎要删除
  • Asp.net Mvc3 webgrid 和分页

    我正在尝试学习Asp net mvc 我知道它与形式不同 我可能需要改变我的思维方式 我的问题是关于 webgrid 的 当我将 webgrid 添加到我的页面并使用 Post 按下搜索按钮时 它会使用寻呼机等呈现表格 但是寻呼机上的链接不
  • Linux 内核中 IRQ 和中断向量之间的区别

    当涉及到内核 API 的工作时 我对 IRQ 和向量有点困惑 我想使用向量 0xfa 进行一些由可编程 lapic 生成的中断处理 我查看了 API 例如request irq and set intr gate also alloc in
  • 结合 Git Bash 并在 CMDER 中的当前文件夹中打开

    请描述我 谁有这样的经验 如何正确设置CMDER的选项以在当前文件夹中使用Git Bash打开新控制台 例如在此处打开CMDER 该字符串不起作用 C Program Files x86 Git bin sh exe login i new
  • 使用来自存储 C#.Net CNG 的密钥进行 ECDSA 签名文件

    我正在尝试使用 CNG API 和 Microsoft 证书存储中的证书通过 ECDSA 签署文件 我已经阅读了大量文档并且即将完成 但我对从证书导入私钥感到困惑 我已经用 RSA 做了同样的事情 但它的做法似乎非常不同 这是我到目前为止的
  • bash 中的 for 循环只是打印 n 次命令而不是重复

    我有一个包含 6000 多行的 input txt 文件 如果一行 a 包含超过 10 个单词 那么我希望将其拆分 但不是在第 10 个单词处 而是在第一个逗号字符出现的位置处 并且 如果新行也有超过10个单词 那么它也应该被拆分 并不断重
  • 堆叠特征中 super 的含义取决于调用站点?

    我无法用语言对此进行很好的描述 所以 请看这个例子 trait Base def foo Base trait One extends Base override def foo One lt super foo trait Two ext
  • Emacs 中的缓冲区切换

    我想模拟 Alt Tab 因为它适用于 GTK 上的各个窗口 但在 emacs 中的缓冲区内使用 Ctrl Tab 因此 举例来说 如果我在 emacs 中打开了 10 个缓冲区 而我目前正在处理两个缓冲区 例如 Buffer1 和 Buf
  • 企业库错误

    我收到有关我们的生活环境中罕见的间歇性错误的报告 我试图重现它但没有成功 而且这个错误本身有点神秘 除此之外 它似乎涉及企业库跟踪 我们使用的是 5 0 版本 总而言之 有点痛苦 这发生在 Windows Sever 2008 上 应用程序
  • Windows 8 应用程序本地存储

    我正在尝试使用 C 开发 Windows 8 应用程序 我需要在本地设置中存储两个列表 字符串和日期时间 List
  • HTTP/2 中是否有必要缓存bust?

    在 HTTP 1 中 为了避免额外的网络请求来确定资源是否应该保留缓存 我们将设置一个高值max age or Expires静态资产的值 并为每个修订版提供唯一的 URL 但在 HTTP 2 中 请求很便宜 所以我们可以在不清除缓存的情况
  • 有没有一种简单的方法可以从两个整数复合键创建唯一的整数键?

    由于与问题不太相关的各种原因 我有一个表 其中包含由两个整数组成的复合键 我想从这两个数字中创建一个唯一的键 我最初的想法是连接它们 但当我意识到 51 1 的复合键会产生与 5 11 相同的唯一键 即 511 时 我很快遇到了问题 有没有
  • 以编程方式访问 Excel 自定义文档属性

    我正在尝试将自定义属性添加到以编程方式创建的工作簿中 我有一个用于获取和设置属性的方法 但问题是工作簿为 CustomDocumentProperties 属性返回 null 我无法弄清楚如何初始化此属性 以便我可以从工作簿中添加和检索属性
  • PHP - 使用 GZIP 压缩静态 css 文件

    所以我有一个CSS文件 style css 在同一目录中我有 images 文件夹 如何制作一个压缩 style css 的脚本 但来自另一个文件夹 现在我有这个
  • 更新数百万个文档的嵌套字段

    我使用脚本进行批量更新来更新嵌套字段 但这非常慢 POST index type bulk update id 1 script inline ctx source nestedfield add params nestedfield pa
  • Agda 函数、类型匹配函数

    我想创建一个辅助函数 它将从索引或参数化类型中获取术语并返回该类型参数 showLen len A Set gt Vec A len gt showLen len showType len A Set gt Vec A len gt Set
  • 测试点是否在匹配的引号之间 (emacs lisp)

    我们如何检查是否 point 在匹配的 引号 内 示例 1 point 但不在范围之内 示例 2 此处引用 point 那里引用 在 Emacs Lisp 中 您正在寻找的是syntax ppss 定义于syntax el 它返回 10 个
  • 如何在Python中捕获自定义异常[重复]

    这个问题在这里已经有答案了 我正在使用一个 python 库 其中在某一时刻定义了一个异常 如下所示 raise Exception Key empty 我现在希望能够捕获该特定异常 但我不知道该怎么做 我尝试了以下方法 try raise