Hvad er forskellen mellem syntaks og semantik Fejl i Java?

March 26

Hvad er forskellen mellem syntaks og semantik Fejl i Java?


Når du skriver applikationer i Java din kode skal overholde syntaks regler sproget. Dette omfatter teksttegnene og tegnsætningssymboler du bruger til at erklære variabler, metoder og klasser. Ud over at skabe kode syntaks, der er korrekt struktureret du nødt til at konstruere dine programmer på en måde, der afspejler logikken på arbejde inden for din ansøgning projekt. Semantiske fejl er fejl i denne logik. Både syntaks og semantiske fejl er fælles problemer i Java udvikling.

Java Syntaks

Java syntaks er specifik og stiv modsætning visse andre sprog, hvor der er en vis fleksibilitet. Hvis din Java-kode ikke overholder de grammatiske krav sproget det vil ikke kompilere eller køre. Følgende eksempelkode indeholder to syntaksfejl:

Strin myTerms = kode program computerens tastatur ";

Den første fejl er i datatype er angivet for den variable erklæres og instantieres i denne linje kode. Strengen datatype mangler sin endelige karakter. Værdien bliver tildelt variablen er også forkert opbygget som åbningen sæt citater er udeladt. Hvis du skriver denne kode i en Java IDE (Integrated Development Environment) vil det mislykkes at kompilere og IDE vil advare dig til de syntaksfejl.

kontrolstrukturer

Java-sproget giver programmører med en række kontrolstrukturer at implementere komplekse strømme af udførelse. Følgende loop skitse indeholder en syntaksfejl:
for (int i = 0; i <10; i ++ {
System.out.println (i);
}

Åbningen sektion af løkken mangler et afsluttende parentes så compileren vil undlade at behandle kroppen af ​​løkken korrekt. Følgende betingelsessætning afsnit indeholder også en fejl:
if (num <10) {int newNum = num + 1; }
System.out.println (newNum);

Denne kode er forkert, fordi linjen efter den betingede sætning forsøger at referere til en variabel, der ikke længere er i rækkevidde. Som en syntaksfejl vil dette forhindre kompilering.

Logiske Issues

Java-programmer kan indeholde semantiske fejl, afhængigt af de strukturer og typer, der er involveret. Arrays og løkker involverer ofte logiske problemer resulterer i semantiske fejl som i følgende kodeeksempel:
int someNums = {3, 5, 1, 7, 2};
for (int i = 0; i <= someNums.length; i ++) {
System.out.println (someNums [i]);
}

Fejlen er i betingelsestesten danner en del af løkken omrids. Forsøgsresultaterne kontrollerer at tællervariablen enten er mindre end eller lig med længden af ​​array bliver gentaget igennem. Når sløjfen udfører for sidste gang koden inden den vil forsøge at få adgang til et element, der er out of bounds. Dette er fordi det første indeks i et array er nul, og det endelige indeks er én mindre end array længde. Denne kode vil kompilere og køre, så mislykkes, når løkken henretter.

Fejl Håndtering

Syntaks og semantiske fejl kræver forskellige tilgange. I de fleste tilfælde vil du blive opmærksom på syntaksfejl mens du skriver din kode som din IDE vil fremhæve dem med fejlmeddelelser og advarsler. Du vil ikke være i stand til at kompilere din kode indtil der ikke er syntaks fejl tilbage i det. Semantiske fejl er mere tilbøjelige til at blive vist, når du kører dit program. Nogle semantiske fejl blevet klart med det samme, da de forårsager dit program til at gå ned. Dog kan andre kun blive synlige efter en omfattende test.


relaterede artikler