Concludiamo con questo e con il successivo capitolo la prima parte della nostra panoramica del Ruby trattando la gestione delle eccezioni, dal prossimo ci occuperemo di questioni accessorie al linguaggio vero e proprio.
Come tutti i linguaggi moderni, anche il Ruby, possiede il meccanismo delle eccezioni, fondamentale nella gestione degli errori. Un'eccezione va sollevata utilizzando il metodo raise
del modulo Kernel. La sintassi completa prevede tre argomenti:
raise(exception [, string [, array]])
Il primo argomento è il nome di una classe della gerarchia Exception
(vedi lista più avanti) e rappresenta il tipo di eccezione da sollevare. Il secondo argomento è un messaggio che verrà associato all'eccezione, mentre il terzo è un array con il callback dell'eccezione. Chiamato senza nessun argomento raise
solleverà un eccezione di tipo RuntimeError
, oppure se definita l'eccezione contenuta in $!
. Ad esempio:
raise "Errore nell'apertura del file" raise ArgumentError, "Tipo di argomento non gestito" raise ArgumentError, "Tipo di argomento non gestito", caller
La gerarchia delle eccezioni in Ruby
Exception NoMemoryError ScriptError LoadError NotImplementedError SyntaxError SignalException Interrupt StandardError ArgumentError IOError EOFError IndexError LocalJumpError NameError NoMethodError RangeError FloatDomainError RegexpError RuntimeError SecurityError SystemCallError SystemStackError ThreadError TypeError ZeroDivisionError SystemExit fatal