Le meilleur didacticiel manipulation C # exception en 2024, dans ce didacticiel, vous pouvez apprendre grammaire,Les classes d'exception en C #,Gestion des exceptions,Créer exception définie par l'utilisateur,Throwable,
Les anomalies lors de problèmes d'exécution du programme. C # est une exception en réponse à des circonstances exceptionnelles qui surviennent lorsque le programme est exécuté, comme la tentative de diviser par zéro.
L'exception est prévue une commande de programme est transféré d'une partie à une autre partie du chemin. manutention # exception C sur la base des quatre mots clésci-dessus:try, catch, enfin etjeter.
Supposons un bloc anormal, une méthode utilisant les mots-clés essayer d'attraper une exception. Code essayer / bloc catch est protégé code, utilisation try / catch comme indiqué dans la syntaxe suivante:
essayer { } // Déclaration qui a provoqué l'exception catch (ExceptionName e1) { // Code d'erreur de manipulation} catch (ExceptionName e2) { // Code d'erreur de manipulation} catch (ExceptionName eN) { // Code d'erreur de manipulation} enfin { // Déclarations à exécuter}
Vous pouvez lister plusieurs déclarations de captures pour attraper différents types d'exceptions, pour empêcher le bloc try génère plusieurs exceptions dans des circonstances différentes.
C # exception est l'utilisation de la représentation de la classe. Les classes d'exception en C # pour la plupart directement ou indirectement dérivées de la classeSystem.Exception.System.ApplicationException etSystem.SystemExceptionclasse est dérivée exception classe des classes de System.Exception.
le soutien de la classeSystem.ApplicationException générée par l'exception de l' application.Ainsi, les exceptions définies par le programmeur devraient être dérivées de cette classe.
classeSystem.SystemException est toute classe de base de système prédéfini pour les exceptions.
Le tableau suivant dresse la liste des dérivés de classes d'exception prédéfinie de classe Sytem.SystemException:
异常类 | 描述 |
---|---|
System.IO.IOException | 处理 I/O 错误。 |
System.IndexOutOfRangeException | 处理当方法指向超出范围的数组索引时生成的错误。 |
System.ArrayTypeMismatchException | 处理当数组类型不匹配时生成的错误。 |
System.NullReferenceException | 处理当依从一个空对象时生成的错误。 |
System.DivideByZeroException | 处理当除以零时生成的错误。 |
System.InvalidCastException | 处理在类型转换期间生成的错误。 |
System.OutOfMemoryException | 处理空闲内存不足生成的错误。 |
System.StackOverflowException | 处理栈溢出生成的错误。 |
C # pour essayer de bloc catch est fourni sous la forme d'un programme de gestion structurée des exceptions. L'utilisation de ces blocs, les états de base du programme et les déclarations de gestion des erreurs séparées.
la manipulation de ces blocs d' erreur est d'utilisertry, catchet mots - clés pour atteindrefinalement.Voici une exception levée lorsqu'il est divisé par zéro Exemples:
using System; namespace ErrorHandlingApplication { DivNumbers de classe { résultat int; () DivNumbers { résultat = 0; } division public void (int num1, int num2) { essayer { résultat = num1 / num2; } catch (DivideByZeroException e) { Console.WriteLine ( "Exception interceptée: {0}", e); } enfin { Console.WriteLine ( "Résultat: {0}", résultat); } } static void Main (string [] args) { DivNumbers d = nouveaux DivNumbers (); d.division (25, 0); Console.ReadKey (); } } }
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:
Exception interceptée: System.DivideByZeroException: Tentative de division par zéro. à fr. Résultat: 0
Vous pouvez également définir vos propres exceptions. Défini par l' utilisateur classe d'exception est dérivée de la classeApplicationException.L'exemple suivant illustre ce point:
using System; namespace UserDefinedException { TestTemperature de classe { static void Main (string [] args) { Température temp = nouvelle température (); essayer { temp.showTemp (); } catch (TempIsZeroException e) { Console.WriteLine ( "TempIsZeroException: {0}", e.Message); } Console.ReadKey (); } } } TempIsZeroException public class: ApplicationException { TempIsZeroException public (string message): base (message) { } } public class Température { int température = 0; showTemp public void () { if (température == 0) { jeter (nouveau TempIsZeroException ( «Zéro Température trouvé")); } autre { Console.WriteLine ( "Température: {0}", température); } } }
Lorsque le code ci-dessus est compilé et exécuté, il produit les résultats suivants:
TempIsZeroException: Zero Température trouvé
Si l'exception est directement ou indirectement dérivée de la classeSystem.Exception, vous pouvez jeter un objet.Vous pouvez utiliser l'instruction catch bloc de touche pour lancer l'objet en cours comme suit:
Catch (Exception e) { fr. Throw e }