Les erreurs sémantiques en java

Beaucoup de gens trouvent la différence entre les erreurs sémantiques et syntaxiques (syntaxe) erreurs dans le code Java difficile à comprendre, mais ils sont différents. Vous pouvez voir une erreur sémantique lorsque la syntaxe de votre code est correct, mais l'utilisation de code est incorrect.

L'erreur sémantique la plus courante est celle dans laquelle le code utilise une variable qui ne sont pas correctement initialisé. Heureusement, le compilateur trouve cette erreur sémantique particulière dans la plupart des cas. Voici une liste des autres erreurs sémantiques communs que vous devez savoir au sujet.

  • Utiliser un opérateur qui ne convient pas: Dans certaines situations, vous pourriez essayer d'utiliser un opérateur qui ne convient pas à la ou les variables en question. Par exemple, vous ne pouvez pas utiliser l'opérateur d'incrémentation (++ de) avec une variable booléenne.

    Les nouvelles versions de Java sont devenus habiles à trouver cette erreur, mais vous pouvez toujours rencontrer des difficultés pour trouver précisément pourquoi une erreur se produit lorsque vous utilisez le mauvais opérateur dans certains cas. Par exemple, MyObj1 == MyObj2 ne sera pas comparer les deux objets - l'opérateur d'égalité fonctionne uniquement avec des types primitifs.




  • Utilisation des types incompatibles: Ce type d'erreur sémantique peut être difficile parce que le compilateur drapeau des erreurs et pas d'autres. Par exemple, si vous essayez d'attribuer un flotteur à une variable int, le compilateur affiche un message d'erreur.

    D'autre part, si vous affectez un int à une variable de flotteur, le compilateur effectue une conversion automatique de type à l'int d'en faire un flotteur. Le problème avec ce deuxième scénario est qu'il peut silencieusement introduire des erreurs dans votre code, surtout si vous avez vraiment l'intention d'utiliser un flotteur.

  • Perte de précision lors d'une conversion: Parfois, vous pouvez appliquer la coulée de manière incorrecte. Par exemple, en jetant un flotteur pour un int fonctionne très bien, mais à la perte de la partie décimale du nombre.

    Cette perte de précision peut affecter la sortie de votre application de manière inattendue et provoquer la sortie afin de refléter une valeur autre que celle que vous attendiez. Le compilateur ne trouve jamais ce genre d'erreur parce que vous avez spécifiquement appliqué un plâtre à la variable et le compilateur attend que vous savez ce que vous faites.

  • Exécution d'une fonte impossible: Il est possible de convertir entre de nombreux types différents en Java. Toutefois, peu importe combien vous souhaitez convertir une valeur booléenne dans un int, Java ne vous laissera pas faire. Le concept de l'exécution du casting est syntaxiquement correct, mais vous l'appliquer de manière incorrecte, ce qui en fait une erreur sémantique que le compilateur rattrape toujours.

  • Application portée incorrecte: Toute variable que vous déclarez intérieur d'une méthode a le même portée - visibilité à d'autres parties de la demande, en d'autres termes - sous forme de procédé. Par conséquent, vous ne pouvez pas déclarer un static int privée variable à l'intérieur d'une méthode. Au lieu de cela, vous devez définir la variable à l'échelle mondiale comme ceci:

    public class PrivateVar {// Cette déclaration works.private static int PrivateInt = 3-public static void main (String [] args) {// Cette déclaration ne work.private pas statique int PrivateInt = 3-}}

Ce sont les problèmes les plus courants que vous devez rechercher dans votre code. Les erreurs sémantiques ont tendance à être difficiles à trouver que des erreurs de syntaxe, mais pas aussi dur que les erreurs logiques.


» » » » Les erreurs sémantiques en java