Programmation Java: lorsque des erreurs surviennent

Erreurs dans les applications Java peuvent se produire à différents moments. Cependant, vous pouvez classer largement quand une erreur se produit en deux catégories, au moment de la compilation et de l'exécution, comme décrit dans les sections suivantes.

Sommaire

Compiler des erreurs de temps

Le compilateur convertit votre code en Java byte-code de l'application. Au cours de ce processus, il faut le code lisible que vous écrivez et le transforme en quelque chose que le Java Runtime Environment (JRE) comprend.

Pour effectuer ce processus, le compilateur doit analyser le code, ce qui signifie qu'il lit le code d'une manière qui détermine sans ambiguïté exactement ce que vous souhaitez que l'application à faire, quand vous le voulez le faire, et comment vous voulez que la tâche accomplie. Si vous enfreignez les règles pour écrire du code sans ambiguïté, le compilateur affiche un message d'erreur. Ce message est en fait une sorte d'exception.

Parsing des moyens pour lire l'entrée que vous fournissez, telles que le code sous forme lisible par l'homme, et la transformer en quelque chose d'autre, comme du byte code Java. Une application peut également analyser l'entrée d'utilisateur. Par exemple, un utilisateur peut taper une chaîne que votre code d'application se transforme en un certain nombre.

Ainsi, l'analyse est l'acte de lire un certain type d'entrée, l'interprétation que l'entrée d'une manière spécifique, et ensuite produire une sortie sur la base de l'entrée interprété. Un analyseur génère une erreur lorsque l'entrée est pas ce qu'il attend.

Par exemple, si l'utilisateur entre une chaîne contenant la lettre C, et vous attend une chaîne contenant un nombre, comme 123, l'analyseur va générer une exception en disant que l'entrée est incorrecte.

La compilation des erreurs sont les plus faciles à manipuler car le compilateur vous indique normalement précisément ce qui ne va pas et où l'erreur a été commise. Même si l'information est pas exacte, le compilateur sera au moins vous rendre à la zone droite de la code cassé de sorte que vous pouvez regarder pour l'erreur qu'il contient.




Pour veiller à ce que tout le monde comprenne précisément comment le langage Java est censé travailler, aux développeurs de créer une spécification pour elle. Cette spécification comprend les éléments de langage dans un langage spécial appelé Backus-Naur Form (BNF). Utilisation BNF est une méthode extrêmement précise de décrire une langue afin qu'il n'y ait pas de risque de mauvaise interprétation par quiconque.

Vous pouvez voir un échantillon de la BNF pour le langage Java au Département d'informatique - Daimi. Ne vous inquiétez pas trop d'être capable de lire cette spécification. La plupart des développeurs ne apprennent à interpréter la BNF pour les langues qu'ils utilisent - qui est le domaine de développeurs de compilateur.

Les erreurs d'exécution

Le compilateur Java ne peut pas trouver toutes les erreurs dans votre code. Si la forme du code est correct (ce qui est, vous l'ont pas fait d'erreur en tapant les éléments qui créent la demande), le compilateur ne sera pas trouver l'erreur.

Par exemple, si vous initialisez une valeur numérique à 5 au lieu de 4, le compilateur ne peut pas trouver l'erreur pour vous parce que le compilateur n'a aucune idée de ce que vous pensiez vraiment tapez 4. Ces sortes d'erreurs créent les erreurs d'exécution - ces erreurs qui se produisent à un moment donné au cours de l'exécution de l'application.

Les erreurs d'exécution peuvent se produire à toutes sortes de fois. Certaines erreurs sont plus susceptibles de se produire à des moments précis. La liste suivante vous donne quelques idées sur le moment où les erreurs d'exécution sont susceptibles de se produire:

  • Initialisation: Lorsque l'application démarre en premier - avant de présenter toute sorte d'interface à l'utilisateur ou effectue un travail utile - elle passe par une phase d'initialisation. Ceci est lorsque vous définissez une variable pour le type incorrect ou d'essayer d'utiliser une variable avant d'initialiser il va se faire remarquer. Beaucoup d'erreurs liées aux ressources naturelles se produisent également lors de l'initialisation parce que la plupart des applications Open tenus ressources pendant ce temps.

  • Mode de fonctionnement: Après une application initialise, il est en mode de fonctionnement. Si elle a une interface utilisateur, il commence l'interaction avec l'utilisateur. Ceci est le temps lorsque l'entrée de l'utilisateur est le plus important.

    Vous trouverez également des variables mal initialisées en ce moment parce que l'utilisateur (ou le destinataire de la sortie de l'application, tels que le système) verront que la sortie est incorrecte. Les demandes des utilisateurs des ressources, comme un fichier de données, créent également des erreurs pendant ce temps.

  • Traitement de fond: La plupart des erreurs de traitement de fond dues à l'environnement (tels que la perte d'une connexion réseau), ressources (comme un fichier perdu), variables mal initialisées, ou des erreurs dans la façon dont vous manquant dit l'application pour effectuer une tâche. Certaines tâches sont plus couramment réalisées dans le fond que d'autres.

    Par exemple, l'impression d'un document ou le téléchargement des ressources de l'Internet sont généralement effectuées en arrière-plan, tandis que l'utilisateur continue à travailler avec l'application au premier plan.

  • Fermer: Lorsque l'utilisateur (y compris les comptes système) indique à l'application, il est plus nécessaire, l'application passe par une phase d'arrêt. Pendant cette phase d'arrêt, l'application se ferme fichiers et effectue d'autres tâches ménagères qui assurent l'application ne laisse pas un gâchis pour le système d'exploitation.

    Les erreurs les plus courantes qui peuvent se produire durant cette phase ne sont pas libérer des ressources que votre demande a utilisés et non la sauvegarde des données sur le disque. Bien sûr, les erreurs de codage peuvent survenir à tout moment, et cette phase de l'opération ne fait pas exception. Vous pourriez dire l'application à fermer cinq fichiers alors que seulement quatre d'entre eux sont en fait ouvert.

Le JRE présentera la plupart des erreurs d'exécution qu'il détecte pour vous comme des exceptions. Toutefois, le JRE ne sera pas attraper toutes les erreurs dans votre application. Vous devez aussi regarder à la sortie de votre demande afin de déterminer si la sortie correspond aux attentes que vous avez pour une entrée donnée.

En outre, il est important d'examiner l'état de toutes les ressources que vous utilisez pour vous assurer qu'ils ne sont pas endommagés en quelque sorte. Par exemple, vous devez vous assurer que les données que vous devez enregistrer dans un fichier se termine effectivement en place dans le fichier lorsque votre application se ferme.

Java 8 a un accent sur la sécurité, ce qui signifie que vous verrez plusieurs instances de SecurityException que vous travaillez avec votre demande.

Voyant une augmentation des exceptions de sécurité ne signifie pas que votre code est défectueux ou que Java 8 est rempli de bogues - cela signifie que Java 8 localise automatiquement et vous informe sur les questions qui pourraient causer des problèmes de sécurité que les gens utilisent votre application.

La documentation de SecurityException apparaît au Java.net. Bien sûr, vous aurez envie de savoir ce que tout le brouhaha est d'environ.


» » » » Programmation Java: lorsque des erreurs surviennent