问题标签 [nested-exceptions]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
43181 浏览

java - 检查某个异常类型是否是嵌套异常中的原因(原因等)的最佳方法?

我正在编写一些 JUnit 测试来验证是否MyCustomException引发了类型异常。但是,此异常多次包装在其他异常中,例如 InvocationTargetException,而 InvocationTargetException 又被包装在 RuntimeException 中。

确定 MyCustomException 是否以某种方式导致我实际捕获的异常的最佳方法是什么?我想做这样的事情(见下划线):

我想避免调用getCause()一些“层”深,以及类似的丑陋解决方法。有没有更好的方法?

(显然,Spring 有NestedRuntimeException.contains(Class),它可以满足我的要求 - 但我没有使用 Spring。)

关闭: 好的,我想真的没有绕过实用方法:-) 感谢所有回复的人!

0 投票
2 回答
344 浏览

vb.net - 我应该如何在异常时移动文件?

要求:发生错误(抛出异常)时,应将正在处理的文件移动到有错误文件的文件夹(app.config 设置)。

问题:我可以处理这个问题的唯一方法是在主 Try/Catch 内有一个嵌套的 Try/Catch 来尝试移动文件,这样如果移动失败,则会引发另一个异常。我知道我可以尽我所能确保目录存在,赋予权限,但由于它是一个网络驱动器......我只知道在某些时候一定会发生错误。

例子

实际上,这比我想象的要可怕得多。

现在我知道我做错了什么。我应该如何真正尝试处理捕获中可能发生的错误,以便我仍然可以移动文件并尝试调用我的事件?

0 投票
9 回答
64359 浏览

java - 捕获嵌套到另一个异常中的异常

我想捕获一个异常,它嵌套在另一个异常中。我目前正在这样做:

有没有办法更高效、更优雅地做到这一点?

0 投票
4 回答
2099 浏览

c++ - 异常应该在 C++ 中链接吗?

我刚刚完成了一个 C++ 程序的工作,在该程序中我实现了自己的异常(尽管派生自 std::exception)。当一个异常导致连锁反应、向上传播错误并引发其他异常时,我采用的做法是在模块(读取类)的每个适当步骤中连接错误消息。即旧异常本身被丢弃并创建一个新异常,但错误消息更长。

这可能对我的小程序有用,但我最终对我的方法并不满意。一方面,除了最后一个例外,不保留行号(虽然目前没有应用)和文件名;确实,该信息对第一个例外最感兴趣。

我认为这可以通过将异常链接在一起来更好地处理;即旧异常在新异常的构造函数中提供。但这将如何实施?当它们超出方法的范围时,异常是否会死亡,从而阻止使用异常指针?如果异常可以是任何派生类,如何复制和存储异常?

这最终让我考虑在 C++ 中链接异常是否是一个好主意。也许应该只创建一个异常,然后向其中添加其他数据(就像我一直在做的那样,但可能以更好的方式)?

您对此有何回应?是否应该将由另一个引起的异常链接在一起以保留一种“异常跟踪”——应该如何实现?-- 或者应该使用一个例外并附加额外的数据 -- 应该怎么做?

0 投票
1 回答
437 浏览

c++ - 这种链接异常的实现是如何工作的?

我之前问过一个关于如何在 C++ 中链接异常的问题,其中一个答案提供了一个很好的解决方案来解决这个问题。问题是我不懂代码,试图在评论中进行这种讨论实在是太麻烦了。所以我认为最好完全开始一个新问题。

代码包含在下面,我已经清楚地标记了我没有得到的每个部分。代码下方包含对我不理解的内容的描述。代码由Potatoswatter编写。


代码

运行代码给出以下输出:


我不明白的

  1. throw;inside try-block:我以前从未见过这个。我认为唯一throw;有效的地方是在catch-block 内重新抛出捕获的内容。那么这有什么作用呢?一些调试显然表明抛出的异常是之前抛出的异常,但那是在一个完全不同的try块内。事实上,它甚至在struct声明之外!

  2. 交换字段:为什么我们需要交换异常字段?仅仅复制指针还不够吗?这是为了防止字段指向的结构过早地从堆中删除吗?

  3. 检查link link链接:我可以理解检查link不是NULL(即使删除NULL指针没有效果),但为什么需要检查link链接?

  4. 抛出虚拟异常:为什么需要这个虚拟?它被抛出,但随后又掉了下来。为什么我们需要它作为链条的末端?

0 投票
1 回答
286 浏览

exception - Throwable 和 Exception 在 D 编程语言中有哪些类成员?

我特别感兴趣,我如何产生嵌套异常以及在处理它们之后如何访问它们。一些文档的链接将不胜感激。我已经尝试在 D 网站上找到它。虽然没有成功。我对D2特别感兴趣。

0 投票
1 回答
174 浏览

java - 嵌套异常与现代(Java SE 7)异常

问题

上下文异常与嵌套异常的优缺点是什么?

为什么我在乎

作为一个没有 Java 背景或不了解 Java 背景的开发人员,我偶然发现了一个可能的机会来更新开源项目的异常处理,但我希望确保我所做的更改是有益的。

有问题的项目是ddlutils。它目前使用 org.apache.commons.lang.exception ,其中指出:

“为以前的 Java 版本提供 JDK 1.4 样式的嵌套异常功能。”

Commons Lang的当前版本(撰写本文时为 3.1)使用 org.apache.commons.lang3.exception ,其中指出:

“包含带有上下文的异常的概念,即这样的异常将包含带有键和值的映射。这提供了一种在异常时以有用的形式将有价值的状态信息以有用的形式传递给调用进程的简单方法。”

0 投票
2 回答
778 浏览

java - 类路径问题: NoClassDefException :

这是问题所在,我有一个项目 X,它使用另一个项目 Y 的服务。Y 使用 eclipse 导出为 jar 文件并添加到项目 X 构​​建路径中。碰巧弹簧在X中加载“classService”的类无法加载,因为在Y的StringEncryptorService中的remoteService的构造函数中初始化依赖项有问题。它说明了 Y 中一个 jar 中的类。没有编译错误,所以构建路径很好。提前谢谢。任何答案将不胜感激

我使用了 Y 项目中的 commons-codec-1.8。我知道我可以将它的 jar 文件移动到 Project X 的引用库,但我想知道我是否可以在 Y 中制作它,这样当我制作其他项目时,比如 A,我可以将 y 作为 jar 导出到 A。

编辑:我认为问题是弹簧找不到通用编解码器。因为它在 Project Y 的库下,所以我导出到 Project X 的项目。我们可以做点什么,让 Project X 中的 spring 可以扫描 Project Y 的库吗?或者专门到 common-codec.jar 的库。如果我说错了,请纠正我。

答:要么通过将 jar 复制到 X 的类路径中显式添加库,要么将其作为外部 jar 添加到项目中,或者在 Eclipse 中将项目添加到类路径中。因为我想让库 common-codec.jar 始终在 Project Y 库中,我们只是添加到 Project X 的 application-context.xml 中:

特别感谢:Harish Kumar。谢谢哥们..


0 投票
1 回答
202 浏览

c++ - 是否可以使用 std::exception_ptr 创建内存泄漏

如果我定义一个异常类

其中我指的是挂起的异常next和新抛出的异常,而this在挂起时prev,异常被处理后是否会被释放?我问的原因是,我曾经听说它std::exception_ptr是根据引用计数实现的,如果我在这个类中产生了引用循环,这可能导致内存泄漏。

0 投票
1 回答
5240 浏览

mysql - 我不断收到“无法获得 jdbc 连接嵌套异常”

我正在尝试在本地数据库中使用 CAS 服务器,但是我不断收到could not get jdbc connection nested exception错误消息。我按照以下方式设置了 deployerconfigcontext

我得到的完整错误是