Warum fängt Try/Catch nicht alles ab?
Übersicht

![]() |
M0rgensternBetreff: Warum fängt Try/Catch nicht alles ab? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hey Leute,
Ich hab mal eine kurze Frage: Undzwar ist bei mir grade das Problem aufgetreten, dass ich eventuelle Fehler beim Laden eines Bildes abfangen wollte. Undzwar so: BlitzMax: [AUSKLAPPEN] Try (Also das ganze steht natürlich in ner Funktion) Jetzt war das Problem, dass ich wohl für pfwidth und pfheight total unmögliche Werte übergeben habe und deshalb in der BMax-internen Funktion "LoadAnim:TImage" der Fehler "Integer divided by Zero" augetreten ist. Da wollte ich mal nachfragen, warum ich das als fehler geworfen bekomme und das nicht durch das Try/Catch abgefangen wird. Kann mir das bitte jemand erklären? Lg, M0rgenstern |
||
![]() |
ZEVS |
![]() Antworten mit Zitat ![]() |
---|---|---|
Es handelt sich hierbei um eine EXCEPTION_INT_DIVIDE_BY_ZERO (Windows), die nicht BMax-Intern läuft, sondern vom Betriebssystem kommt (wie auch EXCEPTION_ACCESS_VIOLONTATION, nur zum Beispiel).
Diese werden nicht in eine BMax-Exception umgewandelt (es wäre der Horror, wenn die Programme von BMax-Alphas dadurch weitere Exceptions produzieren und das Betriebssystem lahmlegen - frohes Debuggen). Durch die Zeile BlitzMax: [AUSKLAPPEN] Assert pfwidth*pfheight
verhinderst du die OS-Exception und wirfst einen BlitzMax-Runtimeerror. ZEVS |
||
![]() |
M0rgenstern |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vielen Dank, ZEVS.
Ich wusste nicht, dass der Fehler vom Betriebssystem kommt. Solche Fehler möchte ich dann natürlich nicht abfangen, wenn die auftreten dann ist ja wirklich richtig was schief gelaufen, dann darf es ruhig crashen. Das mit Assert wusste ich noch gar nicht, also ich kannte den Befehl nicht. Dann könnte man ja sogar mit Try/Catch und Assert in BMax testgetrieben arbeiten. Lg, M0rgenstern |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group