1 / 12

Errori di programmazione

Errori di programmazione. Capitolo 10 dicembre 2003. Classificazione degli errori. Errori riconosciuti dal compilatore errori sintattici errori di semantica statica Errori non riconosciuti dal compilatore errori di semantica dinamica errori logici. Errori sintattici.

Download Presentation

Errori di programmazione

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Errori di programmazione Capitolo 10 dicembre 2003 Errori di programmazione

  2. Classificazione degli errori • Errori riconosciuti dal compilatore • errori sintattici • errori di semantica statica • Errori non riconosciuti dal compilatore • errori di semantica dinamica • errori logici Errori di programmazione

  3. Errori sintattici • Gli errori sintattici (o grammaticali) sono legati all’uso non corretto delle regole grammaticali (lessico e sintassi) • Class ErroriSintattici { // Class anziché class • public static metodoConErrori() { • // manca l'indicazione del tipo di ritorno • double ; // manca la variabile • x = 5 // manca il punto e virgola • x = 5,1; // virgola anziché punto • x = Math.pow(2 3); // manca la virgola • x = 3 + * 5; // espressione mal formata • } • // manca } Errori di programmazione

  4. Segnalazione di errori da parte del compilatore • Il compilatore segnala posizione e tipo di errore riscontrato (secondo lui) • ErroriSintattici.java:4: ';' expected • x = 5 // manca il punto e virgola • ^ • In alcuni casi, la segnalazione è apparentemente sbagliata • ErroriSintattici.java:7: ')' expected • x = Math.pow(2 3); // manca la virgola • ^ Errori di programmazione

  5. Errori di semantica statica • Gli errori di semantica statica sono relativi a istruzioni che, pur correttamente formate, sono errate in quanto prive di significato • int a, b, c; • double y, z; • x = 0; // variabile non dichiarata • a = b; // b non inizializzata • a = "una stringa"; // errore di tipo • a.sommatiA(b); // non si possono inviare • // messaggi a valori primitivi • System.out.stampa(4); // metodo stampa non definito • // nella classe di System.out • y = Math.pow(2); // manca il secondo argomento Errori di programmazione

  6. Errori di semantica dinamica • Gli errori di semantica dinamica sono relativi all’impossibilità di poter eseguire il codice (in alcuni casi) • questi errori possono causare dei malfunzionamenti durante l’esecuzione • int a, b, c; • a = ...; • b = ...; • c = a/b; // errata se b vale 0 Errori di programmazione

  7. Eccezioni • Gli errori di semantica dinamica sono anche chiamati errori al tempo di esecuzione (runtime error) • si manifestano come eccezioni • una eccezione rappresenta il verificarsi di un evento imprevisto (quindi eccezionale) durante l’esecuzione del codice • java.lang.ArithmeticException: / by zero • at DivisionePerZero.main(DivisionePerZero.java:11) Errori di programmazione

  8. Altri errori di semantica dinamica • Un altro esempio – r è un Robot • r.avanza(); • r.avanza(); • si possono verificare errori? Errori di programmazione

  9. Errori logici • Gli errori logici sono errori che derivano da una non corretta realizzazione dei requisiti del metodo • ... calcola il doppio del valore di n ... • int doppio; // il doppio di n • doppio = n + 2; // OOPS, + anziché * Errori di programmazione

  10. Altri errori logici • ... calcola il fattoriale nfatt di n ... • int nfatt; // il fattoriale di n • int i; // per iterare tra 1 e n • nfatt = 0; • i = 1; • while (i<n) { • nfatt = nfatt*i; • i = i+1; • } Errori di programmazione

  11. Altri errori logici • ... calcola il fattoriale nfatt di n ... • int nfatt; // il fattoriale di n • int i; // per iterare tra 1 e n • nfatt = 0; • i = 1; • while (i<n) { • nfatt = nfatt*i; • // OOPS: manca l'incremento di i • } Errori di programmazione

  12. Discussione • Per gli errori riconosciuti dal compilatore • cercare e correggere gli errori • uno alla volta • partendo dal primo tra quelli segnalati • Per gli errori che non sono riconosciuti dal compilatore • eseguire ripetutamente il programma, cercando di causare errori • verifica di correttezza Errori di programmazione

More Related