-1
votes

essayer d'envelopper ma tête autour des exceptions et quand quand les utiliser

Je ne suis pas nouveau pour coder, je le fais depuis longtemps, au travail, j'ai utilisé Java, donc je suis tout à fait d'utiliser un bloc d'essais lorsque le compilateur m'a dit de. En C # car des exceptions peuvent bouillir le compilateur ne vous oblige pas à l'utiliser. Je sais que je devrais utiliser des blocs d'essais quand je peux récupérer à partir d'une exception, mais qui ne m'en aime honnêtement pas beaucoup parce que je ne ressens jamais la nécessité de les utiliser. Avec la base de données, j'utilise simplement une instruction Utilisation et si le code se trouve dans une API Web et il échoue car il ne peut pas se connecter à la base de données, il renvoie automatiquement une erreur de serveur interne 500, donc je n'ai donc pas besoin de faire quoi que ce soit.

J'ai beaucoup lu sur le sujet mais je ne peux pas vraiment penser à quand devrais-je utiliser un bloc d'essais à la place de l'utilisation ou de ne rien faire, et je sais que cela me retient probablement de l'amélioration.


0 commentaires

4 Réponses :


0
votes

Cette réponse n'est pas tout englobante. Je vais juste essayer de montrer quelques exemples.

Logging strong> p>

Utiliser des exceptions peut être très utile pour les erreurs de journalisation. Vous pouvez même vouloir ré-jeter l'exception lorsque vous avez terminé votre journalisation. Savoir quelles exceptions sont lancées, quand elles sont lancées, quelle fréquence, etc ... peut être très utile pour avoir débogué ou améliorer votre base de code. P>

Exemple: P>

class Example
{
  //name must be a valid, non-empty string
  public Example(string name)
  {
    if (String.IsNullOrEmpty(name))
      throw new InvalidOperationException("The name parameter was null or empty");

    //Initialize your new object
  }
}


0 commentaires

0
votes

Personnellement, j'ai adopté essayer / attraper dans n'importe quel code non trivial que j'écris. Si je veux gérer une exception spécifique, j'ajoute un bloc de capture pour cela, si je n'ai pas de bloc standard, j'utilise qui transmettra des informations que je trouverais utile.

En termes généraux cependant, il y a une tonne d'informations sur le sujet sur le Web. Je recommande de faire de la lecture et de décider quelle approche vous convient le mieux.


0 commentaires

0
votes

A Utiliser Block ne vous permet pas de récupérer de votre exception, il suffit de garantir que les ressources soient disposées en cas d'exception non capturée. Il est essentiel que vous compreniez la manipulation des exceptions dans votre application. Vous n'avez pas besoin d'attraper toutes les exceptions, mais vous devriez au moins attraper des exceptions au point d'entrée de votre application pour empêcher la collision.

Permet d'utiliser un exemple depuis que cela vous aide à comprendre le mieux les concepts.

Imaginez que nous créons une application WPF et lorsque un utilisateur appuie sur un bouton, un appel de base de données serait soumis et certaines ressources seraient retournées. Si votre base de données était hors ligne pour une raison quelconque et que vous n'alliez pas appeler votre base de données dans un try / capture, mais appeliez-le dans un bloc d'utilisation, l'application s'écraserait et cela laisserait une mauvaise impression avec vos utilisateurs ou ne vous aidez pas avec le dépannage des rapports. Si nous introduisons un coup d'essai autour de notre base de données, nous pouvons plus laisser l'utilisateur que l'utilisateur connaisse l'erreur et de gérer nos problèmes de base de données. xxx

Vous pouvez également chaîner des types d'exception différentes Si vous vouliez une manipulation spécifique pour DbofflineExceptions ou des exceptions génériques qui sont démontrées ci-dessus.

Consultez cet article pour plus d'informations: https://docs.microsoft.com/en-us/dotnet/standard / exceptions /


0 commentaires

0
votes

Les exceptions sont un moyen de séparer le code de traitement des erreurs du code de la logique d'entreprise. Avant la manipulation des exceptions, vous avez une manipulation d'erreurs après chaque appel de la fonction dans le pire des cas et vérifiez si une erreur se produit sur la valeur de retour. Cela rend le code non lisible et vous pouvez oublier de vérifier les codes d'erreur.

Dans votre cas, le cadre capte toutes les exceptions et renvoie une erreur de serveur interne. Ceci est une manipulation générique des exceptions. C'est bon, le service ne cesse pas de délivré. Mais je pense que vous devez connaître quelque chose à propos de l'erreur et l'enregistrer dans un fichier journal ou doit informer l'utilisateur plus spécifique que l'erreur se produit. C'est à ce moment-là que vous devriez utiliser la manipulation des exceptions.


0 commentaires