"Es kommt darauf an".
Eines der Hauptprobleme mit Ruby ist das Fehlen einer guten Spezifikation. Früher war es allerdings schlimmer.
Dies ist hauptsächlich eine Frage des Stils: Wenn Ihr Fehler gut mit einer der eingebauten Ausnahmeklassen beschrieben werden kann, verwenden Sie ihn. Wenn Sie denken, dass eine Unterklasse sinnvoll ist, verwenden Sie sie.
Andernfalls könnten Sie betrachten folgen:
Erstellen von sehr aufwendigen Ausnahme Hierarchien ist eine Verschwendung von Zeit. Niemand Enden der Pflege und die ganze Mühe geht zu verschwenden. Erstellen Sie stattdessen eine Ausnahme pro Bibliothek oder Namespace und haben Sie einen Ausnahmegrund innerhalb der Ausnahme, um den Typ der Ausnahme anzugeben.
Fügen Sie beispielsweise für Ihre Betriebssystemverkapselung libary eine Ausnahme mit dem Namen OsencapException ein.
Gerade eine Beschreibung der Ausnahmeklassen bei http://redmine.ruby-lang.org/projects/ruby/wiki/ExceptionClassesDoc gefunden –