ApplicationException oder benutzerdefinierte Ausnahmen erstellen?

8

In meinem Datei-Repository werde ich die folgenden Ausnahmen auslösen, wenn die Methode InsertFile() aufgerufen wird:

  • Wenn die maximale Dateigröße überschritten wird,
  • Wenn die Speicherkapazität überschritten wird

Im Moment gebe ich nur ein ApplicationException mit der relevanten Nachricht:

%Vor%

Fragen:

Gibt es bessere Ausnahmeklassen, die ich hier verwenden sollte?

Oder sollte ich meine eigenen benutzerdefinierten Ausnahmen erstellen, indem ich von ApplicationException ableite?

    
davenewza 17.05.2013, 06:47
quelle

4 Antworten

8

Vielleicht lesen Sie die Dokumentation :

  

Wenn Sie eine Anwendung entwerfen, die eigene Ausnahmen erstellen muss, sollten Sie benutzerdefinierte Ausnahmen von der Exception Klasse. Ursprünglich wurde angenommen, dass benutzerdefinierte Ausnahmen von der Klasse ApplicationException abgeleitet werden sollten. In der Praxis hat dies jedoch keinen signifikanten Mehrwert ergeben.

Ob es bessere Ausnahmen gibt, die geworfen werden können - einige könnten erwägen, ein ArgumentOutOfRangeException wenn Sie keine eigene Ausnahme definieren wollen.

    
Damien_The_Unbeliever 17.05.2013, 06:51
quelle
3

Angenommen, es hängt davon ab, wie Sie Ausnahmen behandeln möchten. Wenn bestimmte Ausnahmen ausgelöst werden, können Sie speziell auf sie reagieren. Zum Beispiel:

%Vor%     
Tieson T. 17.05.2013 06:54
quelle
3

Ich würde eine ArgumentException und eine InvalidOperationException respektive verwenden.

    
JeffRSon 17.05.2013 06:56
quelle
1

Nun, was Sie bisher haben ist in Ordnung, aber ich würde stattdessen eine System.ArgumentException (mit einer detaillierten Nachricht) werfen.

    
Dimitar Dimitrov 17.05.2013 06:53
quelle