Di tanto in tanto , un metodo incontrerà un errore , a quel punto avrà esito negativo e dire su di esso tramite il meccanismo denominato un'eccezione. In Ruby , quando le eccezioni vengono alzati di un metodo che incontra un errore, avrete salvare il programma e gestire l'errore .
Istruzioni generare un'eccezione
1
scrivere del codice che genera un'eccezione , utilizzando l' istruzione raise . In Ruby , l'istruzione raise si fermerà l'esecuzione del metodo , poi rilassarsi il programma .
2
Racchiudere la chiamata a questo metodo in una dichiarazione di soccorso di corrispondenza. In caso contrario , il programma finirà e un messaggio di errore viene visualizzato sul terminale . L' esempio seguente mostra una funzione di media , come ad esempio quella che si trova nel software libro di grado .
3
Qui, tutti i punteggi dei test vengono mediati . Se il risultato è superiore al 100 % , non c'è altra scelta che sollevare un'eccezione perché qualcuno ha barato : def media ( num1 , num2 , num3 ) av = ( num1 + num2 + num3 ) /3.0if av > Qualcuno 100raise " truffato , media è # { av } " elsereturn avendend
gestire l'eccezione
4
Scrivi la dichiarazione di soccorso , chiamando il metodo della media racchiuso in un blocco con una dichiarazione di soccorso .
5
Inizia il blocco con " cominciare ". Si può avere qualsiasi numero di istruzioni "salvataggio", e si conclude con la parola chiave "fine" . La dichiarazione di recupero ha una clausola di tipo così : un tipo seguito da = > e un nome di variabile . Escludendo il tipo consentirà la dichiarazione di soccorso per catturare tutte le eccezioni generate .
6
Quando si esegue l'istruzione di salvataggio , il valore che è stato sollevato è assegnato a "e. " Non ci può essere dichiarazioni di salvataggio multiple con più tipi di gestire diversi tipi di errori: beginaverage ( 98 , 92 , 130 ) il salvataggio = > eputs " Ho preso qualcuno barare ! " Mette " Il messaggio di errore è stato questo: # {e} " end
Scrivi Else e garantire dichiarazioni
7
creare un'istruzione garantire , oltre alla dichiarazione di soccorso . La dichiarazione assicurare viene sempre eseguita quando il blocco è finito . Indipendentemente da come il blocco terminato , anche se non ci fosse una eccezione sollevata , o anche se non è riuscito a salvare l'eccezione stessa, il garantire dichiarazione viene sempre eseguita . L' istruzione else viene eseguito solo se non ci fossero eccezioni
8
Qui si vuole assicurarsi che il libro di grado viene chiuso , in modo da garantire libro close_grade si chiama : . Beginaverage ( 98 , 92 , 130 ) salvataggio = > eputs " ho preso qualcuno barare ! " mette " Il messaggio di errore è stato questo: # {e} "> ensureclose_gradebookend
9
Scrivi un'istruzione else . Se non ci fossero eccezioni , l'istruzione else si congratulo lo studente per non barare : elseputs " Buon lavoro, e non ha nemmeno barare ! "