Und diesbezüglich ist man mit Pascal und Delphi recht gut aufgestellt.
Delphi bietet auch gewisse unerwartete "Spielräume"

Zum Beispiel kann jedes beliebige TObject (d.h. nicht nur Klassen die von SysUtils.Exception abgeleitet werden.) als
Exception geworfen werden:
raise TForm.Create(nil);
Und man kann
Self etwas zuweisen (Self ist nicht read-only):
Delphi-Quellcode:
procedure TForm1.ButtonClick(Sender: TObject);
begin
Self := TApplication.Create(nil);
end;
p.s. siehe auch
[Quiz] welcher Exception Handler wird ausgeführt?