8
votes

ApplicationException ou créer des exceptions personnalisées?

Dans mon référentiel de fichiers, je vais jeter les exceptions suivantes lorsque la méthode insertfile () est appelée:

  • Lorsque la limite de taille du fichier de téléchargement est dépassée
  • lorsque la capacité de stockage est dépassée

    pour le moment je suis juste en train de lancer un ApplicationException avec le message correspondant: xxx

    Questions:

    Y a-t-il de meilleures classes d'exception que je devrais utiliser ici?

    ou devrais-je créer mes propres exceptions personnalisées en dérivant de ApplicationException ?


0 commentaires

4 Réponses :


8
votes

Peut-être lu sur le Documentation :

Si vous concevez une application qui doit créer ses propres exceptions, il vous est conseillé de dériver des exceptions personnalisées à partir du exception classe. Il a été pensé à l'origine que des exceptions personnalisées devraient dériver de la catégorie ApplicationException ; Cependant, dans la pratique, cela n'a pas été trouvé pour ajouter une valeur significative.

quant à savoir s'il y a de meilleures exceptions à jeter - certains pourraient envisager de lancer un argumentoutofrangeException si vous ne voulez pas définir votre propre exception.


2 commentaires

Merci pour la tête sur ApplicationException . argumentoutofrangeException est approprié: "L'exception qui est lancée lorsque la valeur d'un argument est en dehors de la plage autorisée de valeurs définies par la méthode invoquée."


Cette réponse cite également la documentation pour ApplicationException et fournit des conseils similaires (et mis à jour).



1
votes

Et bien ce que vous avez jusqu'à présent, c'est bien, mais j'avais personnellement jeter un system.argumentexception (avec un message détaillé) à la place.


0 commentaires

3
votes

Supposons que cela dépend de la manière dont vous envisagez de manipuler des exceptions. Lancer des exceptions spécifiques vous permet de les répondre, en particulier. Par exemple: xxx


1 commentaires

Dans le code du client, il y aurait des chèques, tels que isfileSIFExeededed () , donc je n'aurais donc pas besoin de gérer des exceptions spécifiques afin de renvoyer des commentaires à l'utilisateur. Je vais juste avoir besoin de les enregistrer.



3
votes

J'utiliserais un argumentException et un invalideOperationException , respectivement.


0 commentaires