2010-06-06 24 views
12

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?

+1

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. –

+0

Grazie, questo ha chiarito un po 'le cose! – Ell

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.

Problemi correlati