Tach!
s. Thema. Ist das möglich in PLs die nicht Perl sind?
Natürlich, Exceptions sind grundlegend Objekte und Klassen wie alle anderen auch, zumindest unter PHP und C#.
Ein Anwendungsfall ist, man hat eine Komponente mit einer bestimmten Aufgabe. Zum Erledigen dieser Aufgabe muss sie auf Funktionalität des Frameworks/Systems zugreifen. Dabei tritt eine Exception auf. Die Komponente fängt sie zwar, kann aber nicht angemessen darauf reagieren und gibt sie an den Aufrufer durch. Mitunter wird dann eine neue Exception erzeugt und die eigentliche Exception in der Eigenschaft InnerException weitergegeben.
So passiert das beim Entity Framework von .NET, das ist ein ORM. Das EF kann diverse Datenbanktreiber ansprechen, und jeder von denen wirft eigene Exceptiontypen. Das EF möchte aber gern eine einheitliche Exception liefern und so erzeugt es eine neue Exception vom Typ à la EntityFrameworkException und hängt die eigentliche Exception (SqlException, MysqlException, SqliteException, ...) als InnerException an. Der Aufrufer fängt also einen definierten Typ statt x verschiedener, und wenn er will, kann er trotzdem die InnerException auswerten.
dedlfix.