2016-09-07 5 views
0

Ich bekomme derzeit eine Ausnahme ausgelöst und die Nachricht gibt Wert liegt nicht innerhalb des erwarteten Bereichs. Ich versuche, ein Stück Code zu korrigieren, um diese Ausnahme zu erfassen und zu unterdrücken - ich weiß, was das Problem ist - im Wesentlichen versucht jemand, einen Datensatz aus einer Liste mit einer ID, die nicht existiert, zu ziehen.Abfangen einer Ausnahme

Irgendwelche Ideen, wie ich gehe das zu fangen?

+0

https://msdn.microsoft.com/en-us/library/0yd65esw.aspx –

+0

Sie sollten 'try-catch' verwenden, aber Sie brauchen auch die Handle den Fehler mit Code. Wenn Sie z. B. ein Array lesen und zu weit gehen, sollten Sie es durch Ihren Code nicht tun lassen, und Sie sollten aufhören, wenn das Array keine weiteren Elemente mehr enthält. Der "try-catch" sollte für Ausnahmen verwendet werden, die vom Benutzer generiert werden, nicht durch den Code. – Justplayit94

+0

Sie sollten die Ausnahme zumindest protokollieren. Ausnahmen werden nicht zum Spaß geworfen. – Werner

Antwort

2

Um eine Ausnahme Sie so etwas wie dieses

try 
{ 
    // Code that may throw an exception. 
} 
catch (Exception ex) // Better to use a more specific exception class 
{ 
    // Do nothing - That suppresses the exception. 

    // If you want to do additional checking that may continue the exception 
    // up the stack use "throw" on its own - which compiled to CIL/MSIL's 
    // "rethrow" and doesn't drop much of the information that would 
    // go if you did "throw ex" 
} 

tun müssen, unterdrücken, ist alles da ist, eine Ausnahme zu unterdrücken.

Für die Vernunft derer, die diesen Code (oder Sie selbst in 6 Monaten Zeit, wenn Sie die Besonderheiten vergessen haben, warum Sie dies getan haben), wäre es auch gut, genau zu kommentieren, warum Sie die Ausnahme unterdrücken . Wenn ich Code sehe, der eine Ausnahme unterdrückt, möchte ich immer wissen warum.

0

Verwenden Sie einen trycatch Block mit einem leeren catch?

Wenn Sie wirklich spezifisch werden wollen, können Sie einen Ausnahmefilter verwenden, um nur diesen Fall zu erfassen (in C# 6 natürlich).

Verwandte Themen