"Cela dépend".
L'un des principaux problèmes avec Ruby est l'absence de bonnes spécifications. Mais ça avait l'air pire.
Ceci est principalement une question de style: Si votre erreur peut être décrit bien avec l'une des classes d'exception BUILTIN, l'utiliser. Si vous pensez qu'une sous-classe a du sens, utilisez-la.
Sinon, vous pourriez envisager de suivre :
Création d'exception très élaborée hiérarchies est une perte de temps. Personne fin de soins et tout l'effort va à perdre. Au lieu de cela, créer une exception par bibliothèque ou espace de noms et ont une raison d'exception dans cette exception pour indiquer le type de l'exception . Par exemple, pour votre encapsulation OS libary, faites une exception appelée OsencapException.
Je viens de trouver une description des classes d'exception à http://redmine.ruby-lang.org/projects/ruby/wiki/ExceptionClassesDoc –