Affirmation java

Affirmation java
L'affirmation en Java est une déclaration basée sur le mot réservé, affirmez, ayant une expression booléenne et se terminant par un point-virgule. Il arrive que certaines conditions d'un programme puissent l'empêcher de fonctionner correctement. L'instruction ASSERT vérifie si de telles conditions existent dans un programme.

L'affirmation devrait être utilisée dans un programme où le programmeur soupçonne une telle condition peut exister. Si l'instruction ASSERT est utilisée et que la condition ne se produit pas à tort, le programme se poursuivra sans aucun problème. Si la condition se produit à tort, alors un message d'erreur est signalé. Une telle vérification implique une expression booléenne. Bien sûr, le codage d'affirmation ne doit pas nécessairement impliquer le mot réservé affirmer. Il existe de nombreux bons programmes qui font du codage d'affirmation sans le mot réservé. Cependant, l'utilisation du mot réservé affirme fait ressortir une fonctionnalité particulière de la programmation, ce qui rend le programme plus constructif.

Considérez le segment de code suivant:

Entier dans = null;
si (dans != null)
Système.dehors.println ("faites ceci.");
// Autres déclarations
autre
Système.dehors.println ("Test a échoué.");

Actuellement, la valeur de «in» est nul, mais il peut s'agir de n'importe quel entier. L'IF-bock sera exécuté s'il n'est pas nul, qui doit être considéré comme bon. S'il est nul (faux), la partie ELSE de la déclaration IF-Compound sera exécutée, signalant le problème.

Maintenant, une instruction ASSERT peut remplacer la plupart des parties de l'instruction IF-Compound. Ceci est une utilisation classique de l'instruction Assert. Une autre utilisation classique consiste à vérifier si la limite du résultat d'un calcul n'a pas été atteinte, car la description suivante se présente:

La vitesse d'un objet en mouvement est donnée par,

S = D / T

où d est la distance, t est le temps pris, et s est le résultat (vitesse). On peut souhaiter que la vitesse de l'objet reste en dessous de la vitesse du son et ne provoque donc pas d'ondes de choc. Dans ce cas, l'instruction ASSERT peut être utilisée pour affirmer que la vitesse est inférieure à la vitesse du son, qui est de 343 m / s.

Un code de programme pour ce problème, sans l'énoncé d'assistance, peut être le suivant:

double d = 15, t = 3, s;
s = d / t;
si (s < 343)
Système.dehors.println ("faites ceci.");
// Autres déclarations
autre
Système.dehors.println ("Test a échoué.");

Syntaxes d'assertion en Java

En Java, les syntaxes d'affirmation sont sous deux formes. Ils sont:

affirmer l'expression1;
et
affirmer l'expression1: expression2;

Pour la première option (instruction), Expression1 est une expression booléenne. Remarque: est égal à, dans une expression booléenne, c'est ==, car, en informatique, = Moyenne affectation while == signifie égalité. Pour la deuxième option (instruction), l'expression1 est toujours une expression booléenne; Mais l'expression2 se traduit par une valeur, qui peut être booléenne (vrai ou fausse). Cependant, la valeur ne doit pas être nulle. Le but de l'expression2 est de mener une messagerie à l'erreur au programmeur ou à l'utilisateur. Dans cette deuxième option, le côlon sépare les deux expressions. Le côlon ne s'applique pas à la première option.

L'une ou l'autre déclaration signifie finalement vrai ou fausse à cause de l'expression booléenne. Si c'est vrai, le programme se poursuit comme prévu. S'il est faux, alors l'erreur doit être signalée.

affirmer l'expression1
Validation

L'exemple de code de validation ci-dessus est répété ici pour une référence rapide (visuelle):

Entier dans = null;
si (dans != null)
Système.dehors.println ("faites ceci.");
// Autres déclarations
autre
Système.dehors.println ("Test a échoué.");

«Assert Expression1» peut être utilisé pour ce code comme suit:

Entier dans = null;
affirmer != null;
Système.dehors.println ("faites ceci.");
// Autres déclarations

Si l'affirmation est activée pour le programme, et si Assertion affirme False, comme pour ce codage particulier, les instructions ci-dessous ne seront pas exécutées; et la machine virtuelle Java (OS) publiera un message d'erreur. Si l'affirmation n'est pas activée pour le programme, les déclarations inférieures à l'instruction ASSERT seront exécutées, bien qu'elles soient fausses. Voir comment activer l'affirmation pour un programme ci-dessous.

Pour ce codage d'affirmation, le programmeur permet au JVM de gérer entièrement la messagerie d'erreur en raison de l'absence d'expression2.

Empêcher la portée de la limite

L'exemple de code pour empêcher la portée de limite ci-dessus est répété ici pour une référence rapide (visuelle):

double d = 15, t = 3, s;
s = d / t;
si (s < 343)
Système.dehors.println ("faites ceci.");
// Autres déclarations
autre
Système.dehors.println ("Test a échoué.");

"Assert Expression1" peut être utilisé pour ce code comme suit:

double d = 15, t = 3, s;
s = d / t;
affirmer s < 343;
Système.dehors.println ("faites ceci.");
// Autres déclarations

Si l'affirmation est activée pour le programme, alors pour ce codage particulier, les instructions ci-dessous l'instruction ASSERT seront exécutées et la machine virtuelle Java (OS) n'émettrait pas de message d'erreur; Puisque le résultat de 5 est inférieur à 343. Si l'affirmation n'est pas activée, les instructions en dessous de l'instruction ASSERT seront toujours exécutées car elles seront ignorées même si elles sont fausses. Voir comment activer l'affirmation pour un programme ci-dessous.

Pour ce codage d'affirmation, le programmeur permet toujours au JVM de gérer entièrement la messagerie d'erreur; En raison de l'absence d'expression2.

Expression2
Validation

L'exemple de code de validation ci-dessus est répété ici pour une référence rapide (visuelle):

Entier dans = null;
si (dans != null)
Système.dehors.println ("faites ceci.");
// Autres déclarations
autre
Système.dehors.println ("Test a échoué.");

Expression2 est destiné à la déclaration des erreurs. La partie else de cette déclaration if-compound, est destinée à la déclaration des erreurs. Une utilisation correspondante de l'instruction Assert de la deuxième option, pour ce codage, peut être la suivante:

Entier dans = null;
affirmer != null: in;
Système.dehors.println ("faites ceci.");
// Autres déclarations

Si l'affirmation est activée pour le programme, alors pour ce codage particulier, les instructions sous l'instruction ASSERT ne seront pas exécutées et la machine virtuelle Java (OS) publiera un message d'erreur. Cette fois, le message d'erreur utilisera la valeur de la variable, dans. Si l'affirmation n'est pas activée, les instructions en dessous de l'instruction ASSERT seront exécutées, malgré le fait que l'instruction ASSERT entraîne une fausse. Voir comment activer l'affirmation pour un programme ci-dessous.

Pour ce codage d'affirmation, le programmeur influence le JVM dans son traitement de la messagerie d'erreur en raison de la présence de l'expression2 (in) - voir les détails ci-dessous.

Empêcher la portée de la limite

L'exemple de code pour empêcher la portée de limite ci-dessus est répété ici pour une référence rapide (visuelle):

double d = 15, t = 3, s;
s = d / t;
si (s < 343)
Système.dehors.println ("faites ceci.");
// Autres déclarations
autre
Système.dehors.println ("Test a échoué.");

Expression2 est destiné à la déclaration des erreurs. La partie else de cette déclaration if-compound, est destinée à la déclaration des erreurs. Une utilisation correspondante de l'instruction Assert de la deuxième option, pour ce codage, peut être la suivante:

double d = 15, t = 3, s;
s = d / t;
affirmer s < 343 : s;
Système.dehors.println ("faites ceci.");
// Autres déclarations

Si l'affirmation est activée pour le programme, pour ce codage particulier, les instructions ci-dessous l'instruction ASSERT seront exécutées et la machine virtuelle Java (OS) n'émettra pas de message d'erreur; Puisque le résultat de 5 est inférieur à 343. Si le résultat (valeur) de S est égal ou supérieur à 343, alors le message d'erreur impliquera la valeur de S. Si l'affirmation n'est pas activée, les instructions en dessous de l'instruction ASSERT seront toujours exécutées car elles seront ignorées même si elles se traduisent par une fausse. Voir comment activer l'affirmation pour un programme ci-dessous.

Pour ce codage d'affirmation, le programmeur influence le JVM dans son traitement de la messagerie d'erreur en raison de l'expression2 - voir les détails ci-dessous.

Affirmation d'activation

Si un programme a un codage d'assertion, l'instruction ASSERT ne sera efficace que pour respecter l'énoncé de l'affirmation si le programme est activé. L'activation de l'instruction Assertion est effectuée après que le programme Java a été compilé en bytecode. Cela se fait sur la ligne de commande lors de l'exécution du programme. Il se fait en incluant les commutateurs - les mesures. Avec les commutateurs sur la ligne de commande, le - ne signifie pas «enlever»; C'est un trait d'union (balle).

L'utilisation du commutateur ne fonctionne que pour l'exécution du programme. Si le commutateur n'est pas utilisé, la prochaine fois que le programme sera appelé, l'exécution ignorera l'instruction ASSERT.

Dans cette section, seul le code de validation sera abordé. Le code de validation avec l'instruction Assert First Option est:

Entier dans = null;
affirmer != null;
Système.dehors.println ("faites ceci.");
// Autres déclarations

Supposons que ce soit dans la méthode principale () de la classe et du fichier principaux, appelés theclass. Le fichier sera normalement compilé avec la commande:

javac theclass.Java

La compilation devrait passer avec succès. Avec l'interrupteur, le programme bytecode résultant, TheClass.classe, sera ensuite exécutée sur la ligne de commande avec,

Java - Consérez la classe

Le rapport (sortie) sera:

Exception dans le fil "Main" Java.égouter.Assemblée d'assistance
à la classe.Main (Theclass.Java: 6)

Notez qu'il n'y a aucune mention de la valeur, null, pour la variable, «in» à la sortie. Avec cela, les déclarations inférieures à l'instruction ASSERT dans le programme ne sont pas exécutées.

Le code de validation avec l'instruction Assert de la deuxième option, qui a «: in» est:

Entier dans = null;
affirmer != null: in;
Système.dehors.println ("faites ceci.");
// Autres déclarations

Supposons que ce soit dans la méthode principale () de la classe et du fichier principaux, appelés theclass. Le fichier sera compilé avec la commande:

javac theclass.Java

La compilation devrait passer avec succès. Avec l'interrupteur, le programme bytecode résultant, TheClass.classe, sera exécutée sur la ligne de commande avec,

Java - Consérez la classe

Le rapport (sortie) sera:

Exception dans le fil "Main" Java.égouter.Assertionerror: null
à la classe.Main (Theclass.Java: 6)

Notez qu'il est mentionné de la valeur, null, pour la variable, «in» à la sortie, comme «: null» dans la première ligne de sortie. Avec cela, les déclarations inférieures à l'instruction ASSERT dans le programme ne sont toujours pas exécutées en raison de l'activation de toute déclaration ASSERT dans le programme. Si l'interrupteur, -yable-sesertions, est omis sur la ligne de commande, toutes les instructions affirmaient (ou toutes) du programme seront ignorées. Le code ci-dessous sera toujours exécuté, même si les instructions Assert (expressions booléennes) sont fausses.

Conclusion

L'affirmation en Java est une déclaration basée sur le mot réservé, affirmez, ayant une expression booléenne et se terminant par un point-virgule. Il arrive que certaines conditions d'un programme puissent l'empêcher de fonctionner correctement. L'instruction ASSERT vérifie si de telles conditions existent dans un programme.

De bons exemples d'utilisation de l'instruction ASSERT sont en validation et pour vérifier si le résultat d'un calcul ne franchit pas une limite. Il existe deux formes de l'instruction ASSERT: l'une qui n'aide pas dans le message d'erreur, et l'autre qui aide dans le message d'erreur. Une affirmation dans Java est activée sur la ligne de commande, pour le bytecode compilé, avec le commutateur, -yableassertions.