Ho notato che nella gerarchia delle eccezioni Ruby ci sono "errori" come ArgumentError e ci sono "eccezioni" come SignalException. Esiste una certa pratica di denominazione delle eccezioni? grazie in anticipo, ell.Ruby Eccezione o errore?
12
A
risposta
8
L'the list of Ruby exceptions, SignalException
è l'unico denominato *Exception
; tutto il resto è un XXXError
(eccetto per SystemExit
e fatal
). Se non altro, la pratica è denominare la tua eccezione FooError
. Non riesco a trovare alcun motivo specifico per cui SignalException
non è denominato SignalError
.
5
La convenzione è Module::#{Type}Error
per qualsiasi problema causato dall'applicazione (ad esempio http://weblog.jamisbuck.org/2007/3/7/raising-the-right-exception). La gestione delle eccezioni in Ruby non è stratificata come in Java poiché il modello di eccezione è diverso a livello di lingua.
Da quello che ho visto, le convenzioni sono state applicate un po 'più liberamente per le estensioni C/FFI/JNA.
http://stackoverflow.com/questions/912334/differences-betweeen-exception-and-error ha una buona descrizione delle differenze tra eccezioni ed errori, anche se per una lingua diversa dal ruby. –
Grazie, questo ha chiarito un po 'le cose! – Ell