Dans mon référentiel de fichiers, je vais jeter les exceptions suivantes lorsque la méthode pour le moment je suis juste en train de lancer un Questions: Strong> P> Y a-t-il de meilleures classes d'exception que je devrais utiliser ici? p> ou devrais-je créer mes propres exceptions personnalisées en dérivant de insertfile () code> est appelée:
ApplicationException code> avec le message correspondant: p>
ApplicationException code>? p> p>
4 Réponses :
Peut-être lu sur le Documentation : P>
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 code>
classe. Il a été pensé à l'origine que des exceptions personnalisées devraient dériver de la catégorie code> ApplicationException code>; Cependant, dans la pratique, cela n'a pas été trouvé pour ajouter une valeur significative. P> blockQuote>quant à savoir s'il y a de meilleures exceptions à jeter - certains pourraient envisager de lancer un
argumentoutofrangeException code>
si vous ne voulez pas définir votre propre exception. P>
Merci pour la tête sur ApplicationException code>.
argumentoutofrangeException code> 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." I>
Cette réponse cite également la documentation pour ApplicationException et fournit des conseils similaires (et mis à jour).
Et bien ce que vous avez jusqu'à présent, c'est bien, mais j'avais personnellement jeter un system.argumentexception code> (avec un message détaillé) à la place. p>
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:
Dans le code du client, il y aurait des chèques, tels que isfileSIFExeededed () code>, 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.
J'utiliserais un argumentException code> et un
invalideOperationException code>, respectivement. p>