Informazioni sul documento
- Università
- Politecnico di Milano
- Corso di laurea
- Computer Engineering
- Materia
- Ingegneria del Software
- Classificazione
- Appunti · Divisi per argomento
- Formato originale
- Testo
- Testo ricercabile
Divisi per argomento di Ingegneria del Software per il corso di Computer Engineering presso Politecnico di Milano. Materiale proveniente dall’archivio storico Studwiz e classificato per la consultazione online.
Divisi per argomento di Ingegneria del Software per il corso di Computer Engineering presso Politecnico di Milano. Materiale proveniente dall’archivio storico Studwiz e classificato per la consultazione online.
Qualità dell’importazione: il testo è stato estratto direttamente dal documento originale.
Passaggi rappresentativi riconosciuti nelle diverse parti del materiale. Il testo completo resta presente nella pagina per la ricerca, mentre l’anteprima compatta rende più semplice la lettura.
Gestione delle eccezioni 2 Gestione di errori e situazioni eccezionali Una procedura (utente o di libreria) deve poter segnalare l’impossibilità di produrre un risultato significativo o la propria terminazione scorretta Esempi: – apertura di un file (ma il file non esiste) – Calcolo radice quadrata di un numero (ma il numero è negativo) 3 Gestione tradizionale di errori e situazioni eccezionali (1) terminare il programma –è soluzione comune ma spesso troppo drastica – Es. apertura di un file il cui nome non esiste: probabilmente si può segnalare il problema e continuare l’esecuzione – Es. razzo vettore Ariane 5 nel 96 distrutto per casting da float a int che diede errore a run time a rigore è una scelta che spetta al chiamante e non al chiamato: – solo chi ha chiamato una certa operazione puo’ decidere se si può continuare (ad esempio correggendo l’errore) oppure interrompere l’esecuzione. – Il chiamato non ha di solito elementi per potere decidere come continuare (cosa deve fare la fopen se il file non esiste?) 4 Gestione tradizionale di errori e situazioni eccezionali (2) restituire un valore convenzionale che rappresenti l’errore – Es. fopen in C cerca di aprire un file e restituisce un intero – fact(x) potrebbe ritornare un valore negativo per x<0 può non essere fattibile perché la procedura non ha un valore di ritorno o perché qualsiasi valore di ritorno è ammissibile in generale dà poche informazioni riguardo l’errore incontrato – condiziona il chiamante non posso scrivere espressioni del tipo z = x + fact(y) devo scrivere: int r = fact(y); if (r>0) z = x + r; else ... il chiamante può dimenticarsi di verificare il valore ritornato (es. fopen) 5 Gestione tradizionale di errori e situazioni eccezionali (3) Altre soluzioni meno comuni –…
Prima pagina del documento.