Quali sono le differenze tra sintassi e errori semantici in Java?

January 28

Quali sono le differenze tra sintassi e errori semantici in Java?


Quando si scrivono applicazioni in Java il codice deve rispettare le regole di sintassi del linguaggio. Questo include i caratteri di testo e simboli di punteggiatura che si usa per dichiarare le variabili, metodi e classi. Oltre a creare sintassi del codice che viene correttamente strutturati è necessario costruire i programmi in un modo che riflette la logica al lavoro all'interno del vostro progetto di applicazione. errori semantici sono errori in questa logica. Sia la sintassi e gli errori semantici sono problemi comuni in fase di sviluppo Java.

Java Sintassi

sintassi Java è specifica e rigida differenza di alcune altre lingue in cui vi è una certa flessibilità. Se il codice Java non riesce a soddisfare i requisiti grammaticali della lingua non si compila o eseguire. Il codice di esempio seguente contiene due errori di sintassi:

Strin myTerms = programma di codice tastiera del computer ";

Il primo errore è nel tipo di dati specificato per l'essere variabile dichiarata e istanziati in questa riga di codice. Il tipo di dati stringa manca il suo carattere finale. Il valore viene assegnato alla variabile è anche erroneamente strutturato come l'insieme di citazioni di apertura è stata omessa. Se si scrive il codice in un IDE Java (Integrated Development Environment) che non riuscirà a compilare e l'IDE si avviserà agli errori di sintassi.

Strutture di controllo

Il linguaggio Java fornisce programmatori con una serie di strutture di controllo per implementare flussi complessi di esecuzione. Il seguente schema loop contiene un errore di sintassi:
for (int i = 0; i <10; i ++ {
System.out.println (i);
}

La sezione del ciclo di apertura manca una parentesi di chiusura in modo che il compilatore non riuscirà a elaborare il corpo del ciclo correttamente. La sezione seguente istruzione condizionale contiene anche un errore:
if (num <10) {int newNum = num + 1; }
System.out.println (newNum);

Questo codice è corretto perché la linea dopo l'istruzione condizionale sta tentando di riferimento a una variabile che non è più portata. Come un errore di sintassi questo impedirà la compilazione.

Problemi logici

programmi Java possono contenere errori semantici seconda delle strutture e tipologie coinvolte. Gli array e loop spesso comportano problemi logici con conseguente errori semantici come nel seguente codice di esempio:
int someNums = {3, 5, 1, 7, 2};
for (int i = 0; i <= someNums.length; i ++) {
System.out.println (someNums [i]);
}

L'errore è nel test condizionale stanno formando parte del contorno loop. Il test controlla che la variabile contatore è o minore o uguale alla lunghezza della matrice essere iterato attraverso. Quando il ciclo viene eseguito per l'ultima volta il codice all'interno di esso tenterà di accedere ad un elemento che è fuori dai limiti. Questo perché il primo indice di un array è zero e l'indice finale è uno meno la lunghezza della matrice. Questo codice verrà compilare ed eseguire, poi fallire quando il ciclo viene eseguito.

Gestione degli errori

Sintassi e errori semantici richiedono approcci diversi. Nella maggior parte dei casi si diventa consapevoli di errori di sintassi, mentre si scrive il codice come il vostro IDE li metterà in evidenza con i messaggi di errore e gli avvisi. Non sarà in grado di compilare il codice fino a quando non ci sono errori di sintassi lasciato in esso. errori semantici sono più propensi a comparire quando si esegue il programma. Alcuni errori semantici diventano chiare immediatamente in cui possono causare il programma in crash. Tuttavia, altri possono diventare evidente dopo numerosi test solo.