2010-06-25 5 views
4

Pourriez-vous expliquer le concept d'exceptions en C#?Quel est le but des exceptions?

+0

Le concept d'exceptions n'est pas propre à C#. Tous les langages .NET supportent les exceptions, de même que Java et C++ natif. –

+0

http://en.wikipedia.org/wiki/Exception_handling –

Répondre

0

Consultez les documents MSDN sur Exceptions.

En d'autres termes, une exception se produit chaque fois qu'il y a une erreur dans l'application. Il existe différents types d'erreurs, telles que les index de tableau hors limites, les erreurs d'E/S disque, les problèmes de division par zéro, etc. Mais en général, les exceptions se produisent chaque fois que le programme ne peut pas corriger automatiquement.

+0

Il est utile d'inclure une sorte de résumé ici –

+1

que j'ai fait dans l'édition. – drharris

1

Exception est une situation où une méthode ou une fonction ne peut pas faire ce qu'il est censé faire.

Si la méthode OpenFile ne peut pas ouvrir le fichier [pour raison que ce soit] et renvoyer le descripteur de fichier à l'appelant, c'est une exception pour la méthode OpenFile parce qu'il n'a pas pu ouvrir le fichier qui est son principal objectif. En tant que tel il n'y a rien comme l'exception, ce qui peut être une exception à vous pourrait être chronique à quelqu'un d'autre dans un contexte différent. Nous pouvons l'appeler Execution Failures. L'objectif principal des exceptions est de communiquer les conditions d'erreur.

Ex:OutOfMemoryException pourrait être une condition d'exception pour la normale à petite échelle des applications de saisie de données, mais pas pour les applications qui font leur gestion de la mémoire sur leur propre, comme SqlServer ou IIS. Considérons un cas de lecture d'un flux. Si la méthode ReadByte atteint la fin du flux et qu'il n'y a plus d'octet à lire, au moment où vous appelez ReadByte sur le flux, une exception doit être levée car il n'y a plus d'octets à lire. Mais quand vous appelez la méthode ReadChar à la fin du flux, il lira EOF ce qui est absolument correct pour la méthode ReadChar puisque EOF est un caractère valide à lire. Pour la méthode ReadByte, la condition est appelée method-failure

+0

Une méthode doit faire l'une des deux choses suivantes: Renvoyer une valeur représentant le résultat de l'opération demandée ou lancer une exception si elle ne peut pas terminer l'opération demandée. – kyoryu

+0

le rapport d'erreur basé sur le code d'erreur n'est pas du tout conseillé. La méthode doit servir à son but et ne renvoyer que les valeurs acceptables. Toute condition qui empêche la méthode de le faire est une exception et devrait 'HResult' qui peut être utilisé pour relier l'erreur avec une base de données de bogues ou une documentation externe. C'est parce que vous souhaitez seulement informer sur la condition d'erreur et non pas comment en résoudre un. –

+0

veuillez justifier le vote négatif. –

Questions connexes