![]() |
Delphi-Version: 2009
[Quiz] welcher Exception Handler wird ausgeführt?
Und schon wieder ein Quiz zum Thema Exceptions. Gegeben sei dieser Quelltext:
Delphi-Quellcode:
Was wird geschehen?
program FunWithDelphi;
{$APPTYPE CONSOLE} uses Controls, SysUtils; begin try raise TMouse.Create; except on E:Exception do begin Writeln(E.Classname, ': E is Exception'); end; on E:TObject do begin Writeln(E.Classname, ': E is TObject'); end; on E:TMouse do begin Writeln(E.Classname, ': E is TMouse'); end; end; ReadLn; end.
Wer es es richtig errät, darf natürlich hier posten was geschieht (und warum). Wer es nicht errät, drückt F5 im Browser bis die Antwort erscheint :) |
AW: [Quiz] welcher Exception Handler wird ausgeführt?
Zitat:
Ich wusste allerdings nicht dass man auch Nicht-Exception-Klassen raisen kann. Ich habe also ein bisschen geschummelt weil ichs ausprobiert habe :X |
AW: [Quiz] welcher Exception Handler wird ausgeführt?
Stimmt.
Joar, kann man ... drum ist System.ExceptObject auch ein TObject und keine Exception. (naja, abgesehn von der lage deren Definition ... SysUtils :stupid:) Wenn die Exception aus einer DLL kommt, dann ist es dort eine andere Exception-Klasse, wie im eigenen Modul ... im Grunde ist es da nichtmal mehr ein TObject, da ebenfalls unterschiedliche RTTI. PS: Du hast das ELSE vergessen. :zwinker: |
AW: [Quiz] welcher Exception Handler wird ausgeführt?
Ich bin hin und hergerissen zwischen dem "TMouse: E is TObject" und einem Laufzeitfehler. :?
Ich glaube schon eher letzteres... // Jetzt doch einmal ausprobiert. Interessant am Rande ist dass die IDE nicht anhält. Bei der ... TMouse. |
AW: [Quiz] welcher Exception Handler wird ausgeführt?
Eine Exception in der Exceptionbehandlung ist auch immer was Schönes ... da beendet Windows gleich den kompletten Prozess, da Diese direkt und ungebremst bis zum Windows durchrauscht. :thumb:
Delphi-Quellcode:
raise Exception(nil);
|
AW: [Quiz] welcher Exception Handler wird ausgeführt?
Zitat:
|
AW: [Quiz] welcher Exception Handler wird ausgeführt?
Ein Try-Except im Exception-Handling ... wir lieben doch unsere Endlosschleifen.
|
AW: [Quiz] welcher Exception Handler wird ausgeführt?
Zitat:
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz