问题标签 [exception-handling]

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 回答
4770 浏览

.NET 1.1 中未处理的异常处理程序

我正在维护一个 .NET 1.1 应用程序,我的任务之一是确保用户看不到任何不友好的错误通知。

我已经向Application.ThreadExceptionand添加了处理程序AppDomain.CurrentDomain.UnhandledException,它们确实被调用了。我的问题是仍然显示标准 CLR 错误对话框(在调用异常处理程序之前)。

Jeff 在他的博客herehere上谈到了这个问题。但是没有解决办法。那么.NET 1.1 中处理未捕获异常和显示友好对话框的标准方法是什么?

Jeff 的回答被标记为正确答案,因为他提供的链接包含有关如何执行所需操作的最完整信息。

0 投票
3 回答
1613 浏览

防止 WebBrowser 控件吞下异常

我正在使用System.Windows.Forms.WebBrowser, 来创建一个视图 a-la Visual Studio Start Page。但是,控件似乎正在通过静默下沉来捕获和处理所有异常!不用说这是一个非常不幸的行为。

上面的代码将取消导航并吞下异常。

所以,我所做的(上面)是捕获所有异常并弹出一个框,这比静默失败要好,但显然仍远非理想。我希望它通过正常的应用程序故障路径重定向异常,以便它最终变得未处理,或者由应用程序从根目录处理。

有没有办法告诉WebBrowser控件停止接收异常并以自然和预期的方式转发它们?还是有一些 hacky 方法可以通过本地边界抛出异常?

0 投票
11 回答
188984 浏览

捕获和重新抛出 .NET 异常的最佳实践

捕获异常并重新抛出它们时要考虑的最佳实践是什么?我想确保保留Exception对象InnerException和堆栈跟踪。以下代码块的处理方式有区别吗?

对比:

0 投票
5 回答
1113 浏览

Web 服务中的异常

我的小组正在开发一个基于服务的 (.NET WCF) 应用程序,我们正在尝试决定如何处理内部服务中的异常。我们应该抛出异常吗?返回序列化为 XML 的异常?只返回错误代码?

请记住,用户永远不会看到这些异常,它仅适用于应用程序的其他部分。

0 投票
9 回答
18036 浏览

如何在一个 catch 块中捕获所有类型的异常?

在 C++ 中,我试图在一次捕获中捕获所有类型的异常(就像catch(Exception)在 C# 中一样)。它是如何完成的?更重要的是,如何捕获被零除的异常?

0 投票
6 回答
1437 浏览

.net Web 应用程序中的异常处理

我承认:我不为过多的异常处理而烦恼。我知道我应该做更多,但我永远无法思考从哪里开始和在哪里停止。我不是偷懒。离得很远。这是我对异常处理的矛盾心理过度劳累了。似乎在最小的应用程序中似乎有无数个地方可以应用异常处理,并且开始感觉像是矫枉过正。

我已经通过仔细的测试、验证和默默的祈祷,但这是一个等待发生的糟糕的编程事故。

那么,您的异常处理最佳实践是什么?特别是,应该应用异常处理的最明显/关键的地方在哪里,应该考虑的地方在哪里?

抱歉这个问题含糊不清,但我真的很想一劳永逸地结束这本书。

0 投票
2 回答
13545 浏览

.Net Windows 服务中的 UnhandledException 处理程序

是否可以在 Windows 服务中使用 UnhandledException 处理程序?

通常我会使用一个自定义构建的异常处理组件来进行日志记录、电话回家等。这个组件向 System.AppDomain.CurrentDomain.UnhandledException 添加了一个处理程序,但据我所知,这并没有取得任何成就,因此赢得了 Windows 服务我最终在我的 2 个(或 4 个)服务入口点中使用了这种模式:

有没有办法我的自定义异常处理组件可以更好地处理这个问题,这样我就不必用混乱的异常处理管道填充我的 OnStart 了?

0 投票
8 回答
9972 浏览

Debug.Assert 与特定抛出的异常

我刚刚开始浏览 John Robbins 的“调试 MS .Net 2.0 应用程序”,并且对他对 Debug.Assert(...) 的宣传感到困惑。

他指出,良好实现的断言在某种程度上存储了错误条件的状态,例如:

现在,就我个人而言,他如此喜欢在没有实际明智的“业务逻辑”评论的情况下重述他的测试,这对我来说似乎很疯狂,也许“由于 florbittyjam widgitification 过程,i <= 3 绝不能发生”。

所以,我认为我将 Asserts 作为一种低级的“让我们保护我的假设”之类的东西......假设人们觉得这是一个只需要在调试中进行的测试 - 即你正在保护自己免受同事的伤害和未来的程序员,并希望他们能真正测试一些东西。

但我不明白的是,他接着说除了正常的错误处理之外,您还应该使用断言;现在我设想的是这样的:

错误条件测试的 Debug.Assert 重复我得到了什么?如果我们谈论一个非常重要的计算的仅调试双重检查,我想我会明白的......

...但我没有得到它用于肯定值得检查的参数测试(在调试和发布版本中)......或者不是。我错过了什么?

0 投票
10 回答
9712 浏览

如何找出 Delphi 函数可能抛出的异常?

有没有一种好方法可以找出程序/函数在 Delphi 中可以引发哪些异常(包括它被称为程序/函数)?

在 Java 中,您总是必须声明可以抛出哪些异常,但在 Delphi 中并非如此,这可能会导致未处理的异常。

是否有任何代码分析工具可以检测未处理的异常?

0 投票
11 回答
55774 浏览

如何在 .NET 应用程序中捕获所有异常/崩溃