.net C#中的Java运行时异常等价物?

.net C#中的Java运行时异常等价物?,.net,exception-handling,c#-3.0,runtimeexception,.net,Exception Handling,C# 3.0,Runtimeexception,C#是否具有Java的等价物 (也就是说,可以抛出一个无需被捕获的异常,或者抛出异常时程序崩溃。)我认为它不会。但是,你为什么想要一个?最有可能的是,您可以使用.NET系统的其他部分实现您的目标。在.NET中,如果发生未处理的异常,程序流将失败;windows应用程序将放弃,ASP.NET应用程序将一直冒泡到全局.asax的应用程序错误处理程序 在这方面,没有。但是,也许您可以包括一个您正在尝试做的示例,我们可以提供关于模式或方法的建议,以获得解决方案 .NET没有这样的东西,但您可以在某种程度

C#是否具有Java的等价物


(也就是说,可以抛出一个无需被捕获的异常,或者抛出异常时程序崩溃。)

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

在.NET中,如果发生未处理的异常,程序流将失败;windows应用程序将放弃,ASP.NET应用程序将一直冒泡到全局.asax的应用程序错误处理程序


在这方面,没有。但是,也许您可以包括一个您正在尝试做的示例,我们可以提供关于模式或方法的建议,以获得解决方案

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

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


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

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

然而,从评论来看,您似乎想要捕获此异常。在这种情况下,您永远不应该使用SystemException,您将捕获太多。创建自己的exception类,从exception派生

NET中没有例外规范,以防您所追求的是它

  • 从中选择最合适的异常


  • 不幸的是.net没有有用的异常层次结构。真正的问题:如果一个异常在未被捕获的情况下不会使程序崩溃,那么它有什么用??Op在Java中对RuntimeException的定义不太正确。如果未捕获到
    运行时异常
    将使程序崩溃。与其他异常的区别在于,您不需要在函数原型中声明
    throw
    子句。这将更接近于C++ <代码>运行时错误>代码>,这是不应该发生的异常,但有时在非常特殊的情况下,并且不想在低级代码中处理它们。我有一个例外,我想抛出,但它是否发生并不重要,抛出时不会在整个程序中造成灾难性的失败。@leeand00:那么它真的应该是一个例外吗。。?或者其他一些模式,比如发起活动,让任何人订阅活动。除了例外,还有很多其他的模式可以做到这一点。好的,我就是这么做的。我从Exception派生出它,但我不完全确定它在C#中是如何工作的。谢谢我是C#的新手。在Java中,运行时异常通常不会被捕获。这是因为运行时异常的目的是发出某种致命编程错误的信号。(对于桌面应用程序,最好使用own来通知用户错误,然后终止应用程序。)在C#中,可以使用,但只能在调试模式下使用。这没有什么不同。.NET中的AppDomain.UnhandledException