Standard Exception(en) im GM

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Standard Exception(en) im GM

    Hallo Forum,
    wie kann ich die Standard Exception(en) im GM (ob es überhaupt möglich ist) überschreiben?
    Z.B.: wenn es die geteilt durch 0 (Null) Ausnahmesituation vorkommt wird das Programm unterbrochen, und ein Error Messages Fenster mit der Meldung:
    … Division by 0. generiert. Ist ja super. Nun das Programm wird an der Stelle Unterbrochen!
    Ich möchte es aber nicht! Die Ausnahmesituationen sind mir Bewusst, und kommen in meinem Prog. vor. Was ich nicht möchte, sind die Unterbrechungen des Prog. an der Stelle.
    Versuchte Lösung:

    if(var_welcher_auchNull_sein_kan !=0){
    ... mache was - OK!
    } else {
    hier die Ausnahmesituation, ignorieren
    }

    ist mit jeder Menge Zusatz variablen und if Abfragen verbunden. Und gerade das möchte ich (wen es möglich wäre) mir sparen. Einfacher für mich wird die Standard Exception zu überschreiben. Geht es?
    Gruß
    Georg
  • Leider ist die Variante die du benutzt hast, die einzig mögliche im GM. Der GM ermöglicht einfach kein exception handling :/

    EDIT: wobei, mir fällt grad ein, du kannst diese messages in den allgemeinen Einstellungen abschalten.
    Dann gibt es die variablen
    error_occurred Indicates whether an error has occurred.
    error_last String indicating the last error message.

    Mit denen könntest du abfragen ob grad ein Fehler passiert ist...
    Wenn ich mich nicht irre blockieren aber solche schwerwiegenden Fehler wie Division durch Null den GM auch wenn die messages abgeschaltet sind...

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von DragonGamer ()

  • Hallo DragonGamer,
    danke für den Hinweis. Bevor ich was frage, versuche ich schon die GM- Hilfe, bzw. Forum- einträge relativ gründlich nachzugehen.
    Das:
    error_last String indicating the last error message.
    Generiert den Namen der message – in meinem Fall also die Division by 0

    error_occurred Indicates whether an error has occurred.
    Gibt lediglich nur die Auskunft ob ein Fehler aufgetreten ist.
    GM blockier (wie du auch „sich nicht irrst“) den Prog. (Löst also nicht mein Problem.)
    Gewünscht wäre ne Funktion:
    set error_occurred(boolean)
    Nun dann, haben die GM- Entwickler das Problem:
    … jeder Menge Zusatz variablen und if Abfragen … implementieren zu müssen.

    Danke für die Antwort &
    Gruß
    Georg
  • @naibaf77
    Die soll gar nichts bei mir bezwecken. Am liebsten wäre mir, dass die nie vorkommt.
    Das lässt sich bei mir aber leider nicht meiden. Kommt es dazu, bricht das Programm (mit seiner
    Error Messages Meldung) ab. Und gerade dass möchte ich unterdrücken.
    Versuche es irgendwie´ ne Lösung zu finden.

    @DragonGamer
    du kannst diese messages in den allgemeinen Einstellungen abschalten.
    Wo? - ich habe es nicht gefunden!

    Gruß
    Georg

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von georg01 ()

  • Er soll also erst gar nicht teilen, wenn eine Variable 0 wird?
    Ansonsten wäre eine Alternative, die "mathematischen Gesetze" umzuschreiben, indem du sagst r/0=0.
    Da ich aber nicht weiß, in welchem Zusammenhang bei dir Divisionen durch Null entstehen, kann ich dir nicht weiterhelfen.

    Damit r/0=0 gilt, müsstest du lediglich in jedem Quotenten folgende Annahme machen:

    GML-Quellcode

    1. if (var_nenner=0)
    2. {
    3. var_ergebnis=0
    4. }
    5. else
    6. {
    7. var_ergebnis=var_zähler/var_nenner
    8. }


    Dafür brauchst du keine Zusatzvariable und die if-Abfragen wären simpel und nur bei jedem Quozienten.

    MfG
    naibaf
    True story!
  • Moment, wenn die Messages deaktiviert sind, blockiert er nicht bei division durch 0!
    Wenn es dir nur darum geht ist das die Lösung. Du kannst die messages unter: Global Game setting --> Errors: Show error messages abschalten (einfach das Häckchen beim ersten weg machen).

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Leider bricht er selbst beim nicht-anzeigen von Error Messages
    die Ausführung des aktuellen Scripts ab, schade, damit hätte man
    nen schönen try - catch Ersatz schreiben können.
    ___________________________________________________________
    Beware of wild pointers
    ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____
  • Hallo DragonGamer,
    wo ich Augen hatte … ???? Das habe ich irgendwo übersehen.
    Danke! Das ist die MEGA Einfache Lösung!
    Info – es bricht nicht ab!

    @naibaf
    Danke für dein Posten, hätte es nur so einfach gewesen … aber Danke.

    Gruß
    Georg