-
Posts: 1524
Nickname: nitronic
Registered: Jul, 2006
|
Norbert Eder works as a software architect.
|
|
|
|
Unbehandelte Ausnahmen (Unhandled Exceptions)
|
Posted: Mar 11, 2007 7:58 AM
|
|
Die Frage nach einer globalen Behandlung] von aufgetretenen Ausnahmen - und speziell von unbehandelten Ausnahmen) wird oft gestellt. Als m��gliche Realisierung wird oft das folgende Bespiel gebracht (Ausgangspunkt ist hier eine Konsolenanwendung):
class Program
{
static void Main(string[] args)
{
AppDomain.CurrentDomain.UnhandledException +=
new UnhandledExceptionEventHandler
(delegate(object o, UnhandledExceptionEventArgs
eventArgs)
{
Console.WriteLine("Unhandled Exception: " +
eventArgs.ExceptionObject);
});
}
}
Verschwiegen (ob bewu��t oder aus Nichtwissenheit) wird meist, dass ��ber diesen Weg zwar viele Ausnahmen abgefangen werden k��nnen, diese M��glichkeit jedoch nicht als "Exception-Handler" zu verwenden ist.
Warum nicht? Vorerst werden hiermit nicht behandelnden Exceptions mitgeteilt. W��rde es sich um einen Handler handeln, w��ren die Exceptions nicht unbehandelt. (Achtung: Rekursions-Alarm!)
Weiters lassen sich einige Exceptions hiermit nicht behandeln, da sie via try-catch nicht abgefangen werden k��nnen (seit .NET 2.0: StackOverflowException).
Das bedeutet: Die einzige sinnvolle Einsatzvariante liegt darin, den aktuellen Anwendungsstatus zu speichern bzw. die nicht behandelnden Exceptions in eine Logdatei aufzuzeichnen. Denn die Anwendung wandert ohnehin ��ber den Jordan (sofern eventArgs.IsTerminating wahr ist) ...
Read: Unbehandelte Ausnahmen (Unhandled Exceptions)
|
|