2010-06-06 11 views
12

He notado que en la jerarquía de excepciones de Ruby, hay "errores" como ArgumentError y hay "excepciones" como SignalException. ¿Existe una cierta práctica de nombrar excepciones? gracias de antemano, ell.Ruby Exception or Error?

+1

http://stackoverflow.com/questions/912334/differences-betweeen-exception-and-error tiene una buena descripción de las diferencias entre excepciones y errores, aunque para un idioma distinto de ruby. –

+0

¡Gracias, eso borró un poco las cosas! – Ell

Respuesta

8

En cuanto a the list of Ruby exceptions, SignalException es el único que se llama *Exception; todo lo demás es un XXXError (excepto para SystemExit y fatal). En todo caso, la práctica es nombrar su excepción FooError. Tengo problemas para encontrar una razón específica por la cual SignalException no se llama SignalError.

5

La convención es Module::#{Type}Error para cualquier cosa causada por su aplicación (por ejemplo, http://weblog.jamisbuck.org/2007/3/7/raising-the-right-exception). El manejo de excepciones en Ruby no se estratifica de la misma manera que en Java, ya que el modelo de excepción es diferente en el nivel de idioma.

Según lo que he visto, las convenciones se adhieren un poco más libremente para las extensiones C/FFI/JNA.