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 ! "