问题标签 [swallowed-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 投票
6 回答
2327 浏览

java - 有没有办法强制 JUnit 在任何未经检查的异常上失败,即使被吞下

我正在使用 JUnit 为没有单元测试的遗留代码编写一些更高级别的测试。

大部分代码“吞下”了各种未经检查的异常,如 NullPointerExceptions(例如,仅打印堆栈跟踪并返回 null)。因此,即使在较低级别代码的各个点存在级联灾难,单元测试也可以通过。

有没有办法让第一个未经检查的异常测试失败,即使它们被吞下?

我能想到的唯一替代方法是编写一个自定义 JUnit 包装器来重定向 System.err,然后分析输出中的异常。

0 投票
16 回答
17436 浏览

language-agnostic - 为什么优秀的程序员有时会默默吞下异常?

我知道这是邪恶的,但我已经看到一个优秀程序员编写的代码中吞下了异常。所以我想知道这种不良做法是否至少有一个积极意义。

换句话说,它很糟糕,但为什么优秀的程序员在极少数情况下会使用它?

0 投票
1 回答
20797 浏览

.net - 是什么导致 WPF 应用程序中出现 InvalidDeploymentException?

我开发了一个 WPF 应用程序,当我在调试模式下启动它时,我在输出中看到以下内容:

“WpfApplication1.vshost.exe”(托管 (v2.0.50727)):已加载“C:\WINDOWS\assembly\GAC_MSIL\System.Deployment\2.0.0.0__b03f5f7f11d50a3a\System.Deployment.dll”,已加载符号。System.Deployment.dll 中出现“System.Deployment.Application.InvalidDeploymentException”类型的第一次机会异常附加信息:未设置应用程序标识。

如果我在另一个 WPF 应用程序中使用此应用程序中的控件,则输出中有 7 条此类消息。尽管如此,该应用程序工作正常。

你能解释一下抛出这些异常的原因吗?我发现该方法ApplicationDeployment.get_CurrentDeployment提高了它们。在 MSDN 中写道,当“您试图从非 ClickOnce 应用程序调用此静态属性”时会出现此异常。我不明白这是什么意思。

我发现了类似的帖子InvalidDeploymentException - Application identity is not set but there is no answer to this question。

0 投票
1 回答
2081 浏览

c# - VS2010 没有中断对静态构造函数异常的调试

我有一个带有单个Editor类(继承自Form)的 Windows 窗体应用程序。

除了设计器生成的代码之外,这是表单的唯一代码(仅包含一个组合框 ( cmbConnections)。

该类ConnectionManager是具有静态构造函数的静态类。它的构造函数进行一些初始化,然后测试一些临界条件。如果满足条件,构造函数会抛出异常。但是,此异常不会在 Visual Studio 2010 中的调试模式下中断。为了对此进行测试,我只throw new Exception()放入了ConnectionManager的静态构造函数。在事件处理程序ConnectionManager中使用并因此初始化(第一次) 。Editor_Load调用静态构造函数并抛出异常(仅在输出窗口中可见)。正如预期的那样,Editor_Load事件处理程序 ( )的其余部分没有被执行。cmbConnections.Visible = false;

但是我不明白的是为什么我的VS2010会吞下异常?它没有破坏调试。它不包含在任何 try/catch 块中。它继续在主窗口中执行程序。几乎看起来好像Editor_Load是在另一个线程上执行的。

我可以在输出窗口中看到消息:

在 Editor.exe 中发生了“System.InvalidOperationException”类型的第一次机会异常

在 Editor.exe 中发生了“System.TypeInitializationException”类型的第一次机会异常

但执行根本没有在调试模式下中断。

以下是我认为可能会影响此行为的一些选项:

项目属性->构建->常规->优化代码未选中。

工具->选项->调试->常规->仅启用我的代码已选中。

在异常设置中,“用户未处理”的复选框已选中。

我错过了什么吗?这种行为正常吗?我认为 VS2010 会抛出任何未处理的异常。而这里这个是未处理的,仍然没有中断。

0 投票
3 回答
13532 浏览

error-handling - 如何在 Clojurescript 中捕获任何 Javascript 异常?

在我的通信层中,我需要能够捕获任何 javascript 异常,将其记录下来并像往常一样继续。在 Clojurescript 中捕获异常的当前语法要求我需要指定被捕获的异常的类型。

我尝试在 catch 表单中使用 nil、js/Error、js/object 并且它没有捕获任何 javascript 异常(可以将字符串作为对象的类型)。

我将不胜感激任何提示如何在 Clojurescript 中本地完成此操作。

0 投票
1 回答
60 浏览

winforms - 有没有办法让 Binding 类抛出绑定对象中引发的异常?

考虑以下类:

现在,将此对象的 Test 属性绑定到文本框并尝试输入值将使对象抛出异常,该异常将被 Binding 类吞下。

我发现到达异常的唯一方法(当然,除了在属性设置器本身之外)是使用 Binding 的 BindingComplete 事件。

有什么方法可以设置数据绑定,以便在遇到它不可能知道的异常时,它会处理自己的事情?

0 投票
2 回答
378 浏览

exception - 对扩展属性的 powershell 调用静默失败(通过 Update-TypeData 添加)

我的问题是:

  • 为什么这个错误没有被抛出到代码中?
  • 我怎样才能让错误被抛出到代码中?
  • 我在哪里/我怎么能自己解决这个问题?/ 这个“功能”的文档在哪里?

    /li>
0 投票
1 回答
5763 浏览

c# - 如何将 STATIC 方法的引用作为 C# 中的函数参数传递?

我需要使用 NLog 库中的 Swallow(Func) 方法。重要提示:我从静态方法调用 Swallow 并希望传递静态方法。

它的文档在这里:

http://nlog-project.org/documentation/v3.2.1/html/Overload_NLog_Logger_Swallow.htm

第一种情况(Swallow(Action))(传递静态方法 WO 参数)很简单:

不幸的是,没有为第 2 次 ( Swallow<T>(Func<T>)) 和第 3 次 ( Swallow<T>(Func<T>, T)) 重载提供示例,在这两种情况下,都通过参数传递方法引用。

我也没有在其他地方找到合适的例子。

我自己试过:

var t = typeof(MyMethod);

它们在语法上都不正确。

我应该在这里使用什么语法,将 ref 传递给带参数的方法(即上面链接中的第二个和第三个重载。)?

除了通过委托之外还有其他方法吗?

0 投票
0 回答
775 浏览

c++ - QT 测试因异常而失败并继续下一个测试而不是中止

我查看了一些 qtest 源代码和文档,但无法弄清楚。

如果抛出异常,想要运行测试并让测试用例失败,然后继续进行下一个测试。

有没有办法用各种定义/未定义的宏重新编译qt?或者在每个测试中添加 try/catch 块?

或某种方式让这样的事情工作?

0 投票
1 回答
156 浏览

rest - Powershell 正在吞噬 REST 错误响应

Invoke-WebRequest在 Powershell 中使用,每当我的请求被目标 API 端点确定为无效时,它显然会拒绝请求并发送回 HTTP 错误代码,(400) Bad Request但它也包括错误原因(由 API 供应商提供)但是不包含在 PowerShell 内的日志中。

我确认详细错误已发回,因为我在 PostMan 中看到了它,并且供应商也确认了这一点。Powershell 只是不想展示它。这是我的代码及其生成的响应的示例。

如何捕获更详细的错误消息?