C# -Referenz für eckige Klammern sagt: Eckige Klammern [] werden für Arrays, Indexer und Attribute verwendet. Sie können auch mit Zeigern verwendet werden. (Dies gilt auch für Arrays) Eine Ausnahme wird ausgelöst, wenn ein Array-Index außerhalb des Bereichs liegt.Wie ermittelt man, welche Ausnahmen "x []" auslösen könnte?
Also, wenn Sie eckige Klammern auf etwas anderes als ein Array verwenden, woher wissen Sie dann, welche Ausnahmen ausgelöst werden könnten? Wenn Sie Accessormethoden wie Dictionary.TryGetValue verwenden, können Sie die Ausnahmen, die die Methode auslösen kann, leicht nachschlagen, aber die C# reference for square brackets [] sagt nur, dass sie eine Exception für einen Index außerhalb des Bereichs auf Arrays auslösen könnte.
Also, wenn Sie die eckigen Klammern für einige Datentyp verwenden möchten, wo können Sie suchen, welche Ausnahmen für diesen Datentyp ausgelöst werden könnten?
Ich versuchte, auf ein nicht vorhandenes Mitglied eines Dictionary zuzugreifen, nur um zu sehen, was passiert, und ich bekam KeyNotFoundException. Ich weiß, dass Sie auch NullReferenceException erhalten können. Wo ist das dokumentiert? Und was ist die komplette Liste?
Warum brauchen Sie eine Liste? Würde ein generischer 'catch (Exception ex) 'nicht funktionieren? – DiskJunky
@DiskJunky, das Abfangen der generischen Ausnahme ist eine ungute Übung (außer auf der obersten Ebene, wenn Sie es möglicherweise protokollieren und noch auswerfen). –
@pst vereinbart, auch wie es überlastet werden kann, können Sie Ihre eigene Indizierung Umsetzung implementieren und werfen, was auch immer Sie mögen :) – RobJohnson