Maison  >  Article  >  Java  >  Mécanisme d'exception du langage de programmation

Mécanisme d'exception du langage de programmation

零下一度
零下一度original
2017-07-27 17:04:211513parcourir

Vue d'ensemble

La gestion des exceptions est un mécanisme dans les langages de programmation ou le matériel informatique qui est utilisé pour gérer des conditions anormales qui se produisent dans des logiciels ou des systèmes d'information (c'est-à-dire au-delà de la normale flux d'exécution du programme) certaines conditions particulières). Différents langages de programmation présentent des différences très significatives dans la gestion des exceptions (la différence entre la détection d'erreurs et la gestion des exceptions est la suivante : la détection d'erreurs est un code qui gère les problèmes imprévus dans le flux normal du programme, comme une opération d'appel qui ne se termine pas correctement). Certains langages de programmation ont des fonctions qui ne peuvent pas être appelées en toute sécurité lorsque l'entrée contient des données illégales ou que la valeur de retour ne peut pas être efficacement distinguée des exceptions. Par exemple, la fonction atoi en langage C (conversion de chaîne ASCII en entier) peut renvoyer 0 lorsque l'entrée est illégale. Dans ce cas, le programmeur doit effectuer une détection d'erreur supplémentaire (peut-être via certaines variables globales auxiliaires telles que le numéro d'erreur du C), ou une vérification des entrées (par exemple via des expressions régulières), ou utiliser une combinaison des deux méthodes.

Grâce à la gestion des exceptions, nous pouvons contrôler et inciter les utilisateurs à effectuer des saisies illégales dans le programme afin d'éviter que le programme ne plante.

Du point de vue du processus, les interruptions matérielles sont équivalentes à des exceptions récupérables, bien que les interruptions ne soient généralement pas liées au déroulement du programme lui-même.

Du point de vue d'un programmeur de sous-programmes, les exceptions sont un mécanisme très utile pour avertir le monde extérieur que le sous-programme ne peut pas s'exécuter normalement. Si les données saisies ne sont pas valides (par exemple, le diviseur est 0) ou si les ressources requises ne sont pas disponibles (par exemple, le fichier est manquant). Si le système ne dispose pas de mécanisme d'exception, les programmeurs doivent utiliser des valeurs de retour pour indiquer les erreurs survenues. [1]

Mécanisme d'exception des langages de programmation

De nombreux langages de programmation courants, notamment Actionscript, Ada, BlitzMax, C++, C#, D, ECMAScript, Eiffel, Java, ML, Object Pascal (tels que Delphi, Free Pascal, etc.), Objective-C, Ocaml, PHP (version 5), PL/1, Prolog, Python, REALbasic, Ruby, Visual Prolog et la plupart des langages de programmation .NET, mécanisme d'exception intégré Ils recherchent tous en arrière le long de la pile d’appels de fonction jusqu’à ce qu’ils rencontrent le code de gestion des exceptions. Généralement, le déroulement de la pile s'effectue étape par étape au cours du processus de recherche de ce code de gestion des exceptions. Mais Common Lisp est une exception. Il n'utilise pas la restauration de la pile, il permet donc à l'exécution de reprendre à l'endroit où l'exception a été levée une fois l'exception traitée. Et Visual Basic (en particulier dans ses versions antérieures à .net, comme la 6.0) va plus loin : l'instruction on error peut facilement spécifier s'il faut réessayer (reprendre), ignorer (reprendre ensuite) ou exécuter le programmeur après qu'une exception définie se soit produite. gestionnaire d'erreurs (aller à ***). [1]

La syntaxe du mécanisme d'exception dans la plupart des langages est similaire : utilisez throw ou raise pour lancer un objet d'exception (Java ou C++, etc.) ou une valeur de type énumération extensible spéciale (telle que Ada ); la portée du code de gestion des exceptions est marquée par une clause mark (portée du langage commençant par try ou start) pour marquer son début, et la première clause de gestion des exceptions (catch, except, curriculum vitae, etc.) est utilisée pour marquer sa fin ; il peut apparaître en continu Plusieurs clauses de gestion des exceptions, chacune gérant un type spécifique d'exception. Certaines langues autorisent les clauses else pour les situations où aucune exception ne se produit. Plus courante est la clause final, Ensure, qui sera exécutée indépendamment du fait qu'une exception se produise et est utilisée pour libérer certaines ressources nécessaires à la gestion des exceptions. [1]

La gestion des exceptions C++ est la base de Resource-Acquisition-Is-Initialization. [1]

Le langage C est généralement considéré comme ne prenant pas en charge la gestion des exceptions. Le langage Perl prend éventuellement en charge la gestion structurée des exceptions. [1]

Le langage Python est très complet dans son mécanisme de gestion des exceptions, il est donc très difficile d'écrire un programme sans try and except. [1]


Explication des termes

Traitement des exceptions, le nom anglais est traitement exceptionnel, est une nouvelle méthode pour remplacer la méthode du code d'erreur déclinant, fournissant tout le code d'erreur Impossible de spécifier les avantages. La gestion des exceptions sépare la réception et la gestion des codes d’erreur. Cette fonction clarifie les pensées des programmeurs et contribue à améliorer la lisibilité du code, le rendant plus facile à lire et à comprendre pour les responsables.

La fonctionnalité de gestion des exceptions (également appelée gestion des erreurs) permet de gérer toute condition inattendue ou anormale qui se produit pendant l'exécution du programme. La gestion des exceptions utilise les mots-clés try, catch et enfin pour tenter des opérations qui pourraient échouer, gérer les échecs et nettoyer les ressources par la suite.

La gestion des exceptions est généralement une mesure prise pour éviter que des erreurs inconnues ne se produisent. L'avantage de la gestion des exceptions est que vous n'avez plus à vous creuser la tête pour considérer diverses erreurs. Cela constitue une méthode très efficace pour gérer certains types d'erreurs, améliorant considérablement l'efficacité de la programmation.

Des exceptions peuvent être générées par le Common Language Runtime (CLR), des bibliothèques tierces ou le code d'une application à l'aide du mot-clé throw.


Caractéristiques

1. Lorsque l'application rencontre une situation anormale (telle qu'une division par zéro ou un avertissement de mémoire faible), une exception sera générée.

2. Lorsqu'une exception se produit, le flux de contrôle passe immédiatement au gestionnaire d'exception associé (s'il existe).

3. S'il n'y a pas de gestionnaire d'exception pour l'exception donnée, le programme arrêtera l'exécution et affichera un message d'erreur.

4. Les opérations pouvant provoquer des exceptions sont effectuées à l'aide du mot-clé try.

5. Un gestionnaire d'exceptions est un bloc de code qui est exécuté lorsqu'une exception se produit. En C#, le mot-clé catch est utilisé pour définir les gestionnaires d'exceptions.

6. Le programme peut utiliser le mot-clé throw pour lancer explicitement des exceptions.

7. L'objet d'exception contient des informations détaillées sur l'erreur, y compris l'état de la pile d'appels et une description textuelle de l'erreur.

8. Même si une exception est levée, le code du bloc final sera exécuté, permettant au programme de libérer des ressources.



Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn