Document information
- University
- Politecnico di Milano
- Degree programme
- Computer Engineering
- Subject
- Ingegneria del Software
- Material language
- Italian
- Classification
- Notes · By topic
- Original format
- Text
- Searchable text
Study material for Ingegneria del Software, shared by the Studwiz community and reviewed by moderators.
Study material for Ingegneria del Software, shared by the Studwiz community and reviewed by moderators.
Import quality: text was extracted directly from the original document.
Representative passages recognised in different parts of the material. The full extracted text remains available to search, while this compact preview makes the page easier to read.
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 –…
First page of the document.