Hallo Delphi-Programmierer,
ich bin an folgendes Problem bei Funktionsaufrufen geraten.
Zunächst der Quellcode:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure MyTest(x : string ; b : boolean ; i : integer); begin end;
MyTest(Null,Null,Null); |
Der obige Code lässt sich compilieren, was ich sehr überraschend finde. D.h. Delphi (Delphi 2009) erkennt den Typkonflikt nicht.
Zur Laufzeit wird dann eine Exception ausgelöst:
"Variante des Typs (Null) konnte nicht in Typ (Integer) konvertiert werden"
[Delphi beginnt beim letzten Parameter, spielt aber keine Rolle]
Das Beispiel ist zwar trivial. Aber wir haben zahlreiche kombinierte Funktionsdefinitionen, wo gleichzeitig typisierte und Variant-Parametern vorkommen. Insofern liegt hier ein Risikopotential, wenn nicht ordentlich geprüft wird.
Kann man den Delphi-Compiler zu einer Prüfung schon während des compilierens veranlassen?
Vielen Dank im voraus