问题标签 [rethrow]

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 投票
0 回答
4933 浏览

java - Intellij IDEA Java 7 Multi catch 与重新抛出异常

使用 JDK 7 在 Eclipse 上编译以下方法时没有任何编译错误;奇怪的是,在 Inellij IDEA 14 上使用相同的 JDK 7 的相同方法会产生编译错误,但它运行!这是因为我的 IDEA 配置错误吗?谢谢 :)

0 投票
2 回答
650 浏览

c++ - 我仍然可以从 catch 块中调用的函数中重新抛出异常吗?

我在旧代码库中有以下结构:

随着复制粘贴的发展,相同的捕获块出现在任何地方。现在,我会写一个这样的函数:

并将其放入如下代码中:

这会是一个有效的重构,从而产生相同的功能吗?
(你对重构有什么更好的建议吗?)

0 投票
1 回答
208 浏览

asp.net - ASP.NET MVC:获取在重新抛出的 catch 块中停止的未处理异常

我在 try/catch-rethrow 代码块中看到了一些奇怪的行为。

我有一个方法可以实例化一个 ClientGet 类并从该类中获取 Result 值。

ClientGet 类如下所示:

如果 response.IsSuccessStatusCode 为 false,由于某种原因,代码在我的 GetResult 方法的捕获处停止,并将其作为 ASP.NET Unhandled Exception 错误发布在我的 throw 上;线。我有所有的重新抛出,以便可以将错误传递回应用程序更高级别的原始调用者。

这是我得到的确切信息:

401: Unauthorized 说明:在执行当前的 Web 请求期间发生了未经处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Net.Http.HttpRequestException:401:未经授权

源错误:

0 投票
2 回答
609 浏览

c# - 为什么 ReSharper 建议删除自己的修复程序?

ReSharper 建议重新抛出异常,然后,当我这样做时,它会说整个 catch 子句无论如何都是多余的,并建议将其删除。

我正在使用此代码(来自 MethodMan here):

当我有 ReSharper Inspect > Code Issues in Solution 时,它想知道“异常重新抛出可能是有意的”:

如果我接受 ReSharper 建议的修复(“重新抛出异常”),Resharper 会删除“ex”:

...但是,在下一次检查中,它说“catch 子句是多余的”并建议将其完全删除。

但是,当然,如果我删除了 catch 块,它就不会编译(“预期的 catch 或 finally”)。我可以删除尝试...但是...如果我将其更改为:

...ReSharper 的检查并没有抱怨它。

0 投票
1 回答
426 浏览

php - PHP:抛出具有多个原始/先前异常的异常?

考虑以下代码,我想在其中抛出一个新异常来包装我刚刚捕获的“先前”异常。

在某些时候,在构造新异常时,我想将两个异常作为“$previous”传入。

但在本机上,只支持一个“先前的异常”。

到目前为止我能想到的选项:

  • 创建我自己的异常类,它接受一个额外的“先前”异常。但是然后呢?将其存储为私有财产?还是公开的?带存取器?我将如何制作调用代码来关心额外的信息?
  • 当然,我可以只写日志,然后丢弃一个或两个异常。但这不是这个问题的重点。
0 投票
2 回答
3200 浏览

c# - 在 C# 中重新引发异常

我有一些代码可以捕获异常,回滚事务然后重新抛出异常。

如果我使用此代码,VS Code 分析会引发警告说

改为使用不带参数的“抛出”,以保留最初引发异常的堆栈位置。

如果我使用代码

然后我收到警告说

变量“exSys”已声明但从未使用

我应该如何解决这个问题?

编辑 我试过这个方法,但它不起作用。system.exception 类需要额外的消息以及内部异常。如果我这样做,它将抛出一条新消息,覆盖来自原始异常的消息。我不想得到新的异常,我想用相同的消息抛出相同的异常。

编辑

试过这个方法。然后手动使用throw new Exception("From inside");. 现在,ex.Message 返回“Test”而不是“From inside”。我想保持“来自内部”的信息不变。这个建议的更改将导致到处出现错误显示代码的问题。:/

0 投票
1 回答
1009 浏览

exception - 骡子从 catchexception 重新抛出异常

如何从 mule 中的 catch-exception-strategy 重新抛出异常。

尝试使用以下流程并在“flowdemo”错误处理出现异常后,它不会进入 mdemoflow 的错误处理。它执行位于 flow-ref 之后的记录器。

0 投票
1 回答
204 浏览

java - 重新抛出异常如何被外部捕获终止?

这是程序的输出

问题1::为什么“RethrowDemo”类的catch会终止“Rethrow”类的catch(Arithmetic Exception)抛出的异常。

问题2::控制权转移如何工作?

0 投票
1 回答
587 浏览

java - 重新抛出异常的 ExecutorService

我需要使用 anyExecutor或执行任务ExecutorService。任务(CallableRunnable)应该无限运行,但如果出现任何异常,它应该被重新抛出到提交任务的线程。

我知道这future.get()会为我抛出ExecutionException

但是,在晴天的情况下future.get(),我会无限期地阻塞,所以我不能使用它。

当底层任务失败时,是否有可能Executor简单地抛出异常?

0 投票
1 回答
165 浏览

java - finally 中抛出的异常并 catch 块

对 catch 和 finally 块中抛出的异常有疑问:

我曾多次尝试执行上述代码。它每次都给我不同的输出。

请解释。