"Dipende".
Uno dei problemi principali con Ruby è la mancanza di specifiche valide. Era peggio, però.
Questa è principalmente una questione di stile: se il tuo errore può essere descritto bene con una delle classi di eccezioni incorporate, usalo. Se pensi che una sottoclasse abbia senso, usala.
In caso contrario, si potrebbe considerare di seguire :
Creazione di eccezione molto elaborato gerarchie è una perdita di tempo. Nessuno fine della cura e tutto lo sforzo va di sprecare. Invece, creare un'eccezione per libreria o spazio dei nomi e hanno un motivo di eccezione all'interno dell'eccezione per indicare il tipo di eccezione .
Ad esempio, per la tua libreria OS incapsulamento , creare un'eccezione denominata OsencapException.
Ho appena trovato una descrizione delle classi di eccezioni su http://redmine.ruby-lang.org/projects/ruby/wiki/ExceptionClassesDoc –