Frage

Hat C # das Äquivalent zu Javas Java.lang.RuntimeException ?

(I.E. eine Ausnahme, die ausgelöst werden kann, ohne dass sie abgefangen werden muss, oder das Programm stürzt ab, wenn die Ausnahme ausgelöst wird.)

War es hilfreich?

Lösung

SystemException ist das Äquivalent, es ist die Basisklasse aller Ausnahmen, die durch .NET-Code ausgelöst werden können.Im Gegensatz zu Anwendungsausnahmen.

Aus den Kommentaren geht jedoch hervor, dass Sie diese Ausnahme abfangen möchten.In diesem Fall sollten Sie niemals SystemException verwenden, da Sie zu viele abfangen.Erstellen Sie Ihre eigene Ausnahmeklasse, die von Exception abgeleitet ist.

In .NET gibt es keine Ausnahmespezifikationen, falls Sie danach suchen.

Andere Tipps

In .NET schlägt der Programmablauf fehl, wenn eine nicht behandelte Ausnahme auftritt.Eine Windows-App gibt auf und eine ASP.NET-Anwendung sprudelt bis zum Application_Error-Handler von Global.asax.

Insofern nein.Vielleicht können Sie jedoch ein Beispiel dafür angeben, was Sie tun möchten, und wir können Vorschläge zu Mustern oder Ansätzen machen, um eine Lösung für Sie zu finden.

Ich glaube nicht.Aber warum willst du eins?Höchstwahrscheinlich können Sie Ihr Ziel mit einem anderen Teil des .NET-Systems erreichen.

.NET hat so etwas nicht genau, aber Sie können es bis zu einem gewissen Grad simulieren.Sie könnten , aber viele empfehlen nicht, den Einstiegspunkt Ihrer Anwendung in einen einzigen Versuch / Fang zu verpacken, die gesuchte Ausnahme abzufangen und zu schlucken.Wenn etwas näher dran ist, dann großartig.

Dies ist in gewisser Weise aufgebaut, wie das DispatcherUnhandledException-Ereignis in WPF;Sie können das Ereignis behandeln und den DispatcherUnhandledExceptionEventArgs.Handled = true festlegen, damit die Anwendung weiterhin ausgeführt wird.

Im Allgemeinen empfehle ich dieses Muster nicht.Verwenden Sie stattdessen Trace.WriteLine und schreiben Sie bei Bedarf einen Trace-Listener.Denken Sie daran: Ausnahmen sind außergewöhnlich .Es passiert etwas Außergewöhnliches, das bedeutet, dass es besser ist, die Anwendung zu stoppen, als in einem unvorhergesehenen Zustand fortzufahren.

  1. C # hat keine Ausnahmen überprüft .

  2. Wählen Sie die am besten geeignete Ausnahme aus diese Liste .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top