Da
WinAPI Funktionen in der Regel keine Exceptions werfen, wäre es sinnlos Exceptions behandeln zu wollen. Das gilt natürlich auch für try...finally.
Sie aber als sinnlos bin der objektorientierten Programmierung abzutun hat die objektorientierte Programmierung nicht verstanden. Das sieht man auch sehr schön an deinen Code:
Delphi-Quellcode:
if GdipCreateFromHDC(
DC, Graphics) = Ok
then
if Assigned(Fam)
then
if Assigned(TempFont)
then
if boundingBox.Width > Width
then
end
else
...;
end;
end;
end;
Da Windows
API Funktionen nur Fehlercodes zurück geben muss man diese jedes mal prüfen und entsprechend reagieren, was zu solchen Verschachtelungsorgien führt. Btw. wo ist die Fehlerbehandlung, wenn der Funktionsaufruf fehlschlägt bei dir?
In der objektorientierten Programmierung schreibt man den Code einfach runter unter macht im Except-Block eine Fehlerbehandlung für alles. Und in Exyception.message steht dann drin welcher Methodenaufruf aus welchem Grund fehlgeschlagen ist.