28

C# 是否具有与 Java 的java.lang.RuntimeException等效的功能?

(IE 一个不需要被捕获就可以抛出的异常,或者抛出异常时程序崩溃。)

4

5 回答 5

24

SystemException 是等价的,它是 .NET 代码可以引发的所有异常的基类。与应用程序异常相反。

然而,从评论中听起来你想捕捉这个异常。在这种情况下,你永远不应该使用 SystemException,你会捕获太多。创建自己的异常类,从 Exception 派生。

.NET 中没有异常规范,以防万一这就是您所追求的。

于 2011-03-23T20:03:04.137 回答
1

在 .NET 中,如果发生未处理的异常,程序流程将失败;Windows 应用程序将放弃,而 ASP.NET 应用程序将一直冒泡到 Global.asax 的 Application_Error 处理程序。

在这方面,没有。但是,也许您可​​以包含一个您正在尝试做的事情的示例,我们可以提供有关模式或方法的建议,以便为您提供解决方案。

于 2011-03-23T18:45:58.950 回答
0

我认为不会。但是,你为什么想要一个?最有可能的是,您可以使用 .NET 系统的其他部分来实现您的目标。

于 2011-03-23T18:44:27.983 回答
0

.NET 没有完全类似的东西,但您可以在某种程度上模拟它。您可以,但很多人不建议,将应用程序的入口点包装在一个 try/catch 中,然后捕获您正在寻找的异常,然后吞下它。如果有更近的东西抓住它,那就太好了。

这是以某些方式构建的,例如DispatcherUnhandledExceptionWPF 中的事件;您可以处理该事件,并设置DispatcherUnhandledExceptionEventArgs.Handled = true以保持应用程序运行。

一般来说,我不推荐这种模式。改为使用Trace.WriteLine,如果需要,编写一个 Trace 侦听器。记住:例外是例外。发生了一些不寻常的事情,这意味着停止应用程序比继续处于不可预测的状态要好。

于 2011-03-23T19:26:21.067 回答
0
  1. C# 没有检查异常

  2. 从此列表中选择最合适的例外。

于 2019-03-01T00:07:22.733 回答