Überlauf bei Rechenoperation mitbekommen
4. Apr 2014, 13:24
Ich hab folgendes Problem, ich möchte den Überlauf bei einer Integer Rechenoperation mitbekomme, allerdings ohne dass es eine Fehlermeldung gibt. Ich will es einfach nur wissen. Die Rechenoperation soll wie üblich fortgesetzt werden, mit dem falschen Ergebnis, ich will es nur wissen.
Eine Lösung habe ist, aber die gefällt mir nicht. Standard ist {$Q-}. Mit der Direktive {$Q+} kann ich die Überlaufprüfung einschalten, allerdings gibt es dann eine Fehlermeldung. Die kann ich mit EIntOverflow abfangen, allerdings wird die Rechnung nicht fortgeführt, aber das will ich. Eine Möglichkeit ist die Info zu kassieren und dann ein weiteres Mal, dieses mit {$Q-} zu rechnen. Aber so blöd ist der Compiler nicht. Der sagt sich - der Typ weiß nicht was er will - und ignoriert eine von beiden Routinen. Man kann anscheinend in einer Prozedur nicht gleichzeitig {$Q+} und {$Q-} nutzen. Also muss eine der Routinen ausgelagert werden. Und spätestens hier wird aus eine Vierzeilener ein Zwanzigzeiler.
Gibt es eine Möglichkeit bei {$Q-} nach einer Rechnung mitzubekommen ob es einen Überlauf gab?
|