AutoIt Error MessageBox Catch?

  • Hi,

    gibt es momentan eine möglichkeit einen AutoIt Error (eines compiled-scripts) also dessen Nachricht mit einer eigenen auszutauschen?
    Natürlich bleibt die methode if @error then exit oder sonst was aber das muss ja dann sehr oft vorkommen:D

    Lg Phil

  • Nein, die seit fast 40 Jahren in sämtlichen Basic-Dialekten (auch bspw. in VBA) verwendete Funktion "On Error Goto" hat es nicht ins moderne AutoIt geschafft!
    Da bleibt dir nur, innerhalb der Funktionen einen eigenen Errorhandler zu erstellen, welcher bei auftretenden Fehlern wenigstens Infos einblendet wie bspw "Fehler im Modul blablub in der Funktion xyz aufgetreten! Die Fehlermeldung wird per Email an den Support geschickt."

    • Offizieller Beitrag

    Hey,

    doch tüllich gibts das! Leider nicht intern, aber es gibt und gab schon immer die Möglichkeit sich ein Fehler nicht als MessageBox sondern in den Stdout schreiben zu lassen mit der Commandozeile /StdOutErr (die SciTe auch benutzt). Diesen Fehler kann man nun abfangen:
    https://www.autoitscript.com/forum/topic/12…ritical-errors/

    Natürlich sollte man trotzdem darauf achten schon ein gutes Errorhandling zu haben.

    Lieben Gruß,
    Spider

  • @'GtaSpider,
    es ging dem TE wohl weniger darum, ein "schöneres" Fenster, statt des Fensters der Fehlermeldung zu bekommen.
    Das Autoit-eigene Fehlerfenster "aufzuhübschen" löst das Problem nicht!

    Dass der Fehler aufgetreten ist, ist klar, wichtiger wäre, den Fehler lokalisieren zu können, wie man das per "OnErrorGoto" u.a. in jede Funktion (wenn nötig auch mehrere Fehlerroutinen) integrieren kann!

    Und ja, es ist besser und macht natürlich auch den Code leserlicher (Achtung! Sarkasmus/Ironie! ), für JEDE aufgerufene Funktion, egal ob intern oder aus einer UDF, mehrere Zeilen Errormanagement per @error zu machen....imho ist das völlig indiskutabel.
    Es gilt also den "Mittelweg" zu finden, und da ist "OnErrorGoto" eigentlich keine schlechte Option. Und übrigens in einen Interpreter simpelst zu integrieren! Wenn man mal nachdenkt, woher die "AutoIt"-Fehlermeldung kommt, fragt man sich schon, wieso da nicht mehr Informationen bereitgestellt werden statt "Error in Line 00023175324". Diese Zeile mit der Markierung des Fehlers darzustellen wäre auch kein Problem gewesen....in der Console funktioniert das ja auch!

    //EDIT
    Seltsamerweise ist es aber überhaupt kein Problem, beim "professionellen" OOP einen COM-Errorhandler implementiert zu haben
    $oMyError = ObjEvent("AutoIt.Error", "_OOErrFunc") 

    ciao
    Andy


    "Schlechtes Benehmen halten die Leute doch nur deswegen für eine Art Vorrecht, weil keiner ihnen aufs Maul haut." Klaus Kinski
    "Hint: Write comments after each line. So you can (better) see what your program does and what it not does. And we can see what you're thinking what your program does and we can point to the missunderstandings." A-Jay

    Wie man Fragen richtig stellt... Tutorial: Wie man Script-Fehler findet und beseitigt...X-Y-Problem

    3 Mal editiert, zuletzt von Andy (18. Mai 2015 um 19:55)