Back
NotesBy topicItalian

04 Gestione delle eccezioni

Study material for Ingegneria del Software, shared by the Studwiz community and reviewed by moderators.

Ingegneria del SoftwareBy topic

Document information

What's included in this study material

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.

Extracted content from the 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.

Page 1

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 –…

Preview

First page of the document.

First page: 04 Gestione delle eccezioni