Eccezioni
Segnalare le eccezioni con il metodo
raise.Omettere
RuntimeErrornella versione a due parametri diraise.
# bad
raise RuntimeError, "message"
# good - signals a RuntimeError by default
raise "message"Preferisce fornire una classe di eccezione e un messaggio come due argomenti separati da
raise, invece di un'istanza di eccezione.
# bad
raise SomeException.new("message")
# Note that there is no way to do `raise SomeException.new("message"), backtrace`.
# good
raise SomeException, "message"
# Consistent with `raise SomeException, "message", backtrace`.Evitare il ritorno da un blocco
ensure. Se si ritorna esplicitamente da un metodo all'interno di un bloccoensure, il ritorno avrà la precedenza su qualsiasi eccezione sollevata e il metodo ritornerà come se non fosse stata sollevata alcuna eccezione. In effetti, l'eccezione sarà gettata via silenziosamente.
# bad
def foo
raise
ensure
return "very bad idea"
endUtilizzare blocchi di
beginimpliciti, ove possibile.
Evitare dichiarazioni
rescuevuote.
Evitare il
rescuenella sua forma di modificatore.
Evitare di effettuare il catch della classe
Exception.
Preferire le eccezioni della libreria standard all'introduzione di nuove classi di eccezioni.
Utilizzare nomi significativi per le variabili di eccezione.
Last updated
Was this helpful?