Hva er forskjellene mellom syntaks og semantiske feil i Java?

Hva er forskjellene mellom syntaks og semantiske feil i Java?


Når du skriver programmer i Java-kode din trenger for å observere syntaksregler i språket. Dette inkluderer teksttegnene og tegnsettingssymboler du bruker til å erklære variabler, metoder og klasser. I tillegg til å lage kode syntaks som er riktig strukturert du trenger for å lage programmene dine på en måte som gjenspeiler logikken virker i din søknad prosjektet. Semantiske feil er feil i denne logikken. Både syntaks og semantiske feil er vanlige problemer i Java utvikling.

Java Syntax

Java syntaks er bestemt og stiv i motsetning til visse andre språk der det er en grad av fleksibilitet. Hvis Java-kode unnlater å overholde de grammatiske kravene i språk det ikke vil kompilere eller kjøre. Følgende eksempelkode inneholder to syntaksfeil:

Strin myTerms = kode program datamaskinens tastatur ";

Den første feilen er i datatypen som er oppgitt for variabelen blir deklarert og starte i denne linjen med kode. Strengen datatype mangler sin endelige karakter. Verdien blir tildelt variabelen er også feilaktig strukturert som åpningen sett av sitater har blitt utelatt. Hvis du skriver inn denne koden i en Java IDE (Integrated Development Environment) vil det ikke klarer å kompilere og IDE vil varsle deg til syntaksfeil.

kontrollstrukturer

Java-språket gir programmerere med en rekke kontrollstrukturer for å implementere komplekse strømmer av utførelse. Følgende sløyfe omrisset inneholder en syntaksfeil:
for (int i = 0; i <10; i ++ {
System.out.println (i);
}

Åpningen delen av sløyfen mangler en avsluttende parentes, slik at kompilatoren vil mislykkes i å behandle hoveddelen av sløyfen på riktig måte. Følgende betinget utsagn delen inneholder også en feil:
if (num <10) {int newNum = num + 1; }
System.out.println (newNum);

Denne koden er feil fordi linjen etter den betingede utsagn forsøker å referere til en variabel som ikke lenger er i omfang. Som en syntaksfeil vil dette hindre samlingen.

logiske Issues

Java-programmer kan inneholde semantiske feil avhengig av strukturer og typer som er involvert. Arrays og sløyfer ofte innebære logiske problemer som resulterer i semantiske feil som i følgende eksempelkode:
int someNums = {3, 5, 1, 7, 2};
for (int i = 0; i <= someNums.length; i ++) {
System.out.println (someNums [i]);
}

Feilen er i betingelsestesten danner en del av sløyfen omriss. Test kontrollerer at telleren variabelen er enten mindre enn eller lik lengden av rekken blir iterert gjennom. Når løkken utfører for siste gang koden i det vil forsøke å få tilgang til et element som er utenfor banen. Dette er fordi den første indeksen i en matrise er null og den endelige indeksen er en mindre enn matrisen lengde. Denne koden vil kompilere og kjøre, deretter mislykkes når sløyfen utfører.

Feilhåndtering

Syntaks og semantiske feil krever ulike tilnærminger. I de fleste tilfeller vil du bli klar over syntaksfeil mens du skriver koden som IDE vil markere dem med feilmeldinger og advarsler. Du vil ikke være i stand til å kompilere koden til det ikke er syntaksfeil igjen i den. Semantiske feil er mer sannsynlig å dukke opp når du kjører programmet. Noen semantiske feil blitt klart med en gang da de føre til at programmet krasjer. Imidlertid kan andre bare bli klart etter omfattende testing.