Konsolenprogramm, Verhindern der Meldung mit den GPF und ok klicken müssen


  • Mod

    Scheppertreiber schrieb:

    Problem nicht verstanden ?

    Doch. Ich denke ich habe das Problem versanden.

    Meine Software verarbeitet ich "Import-Dateien". Da kommt ein Anwender auch mal auf die Idee und "importiert" eine EXE. Mein Programm kann das ab...

    Doch man kann genau die Fälle (am meisten ist es ein Pufferüberlauf) abfangen.
    Und ein UEA ist auch bei den unsinnigsten Eingaben zu vermeiden.
    Wenn man nicht damit rechnet oder es behebt, geht man evt. weitaus schlimmere Flgen ein wenn die "falsche Eigabe" etwass bewirkt was "weniger als ein UAE" ist.

    Und ja. Ich bin mir sicher, dass man ohne großen Mehraufwand so programmieren kann, dass UAEs nicht vorkommmen.

    Ich bleibe dabei: Behebe den Fehler...



  • Scheppertreiber schrieb:

    Es ist schlicht nicht möglich da jeden Unsinn abzufangen den sich ein Kunde
    ausdenken könnte und mir das Programm abschießt.

    Es ist möglich, und es ist deine Pflicht, dafür zu sorgen. Ich kann Martin Richter da nur zustimmen.

    Ein Programm, das sich durch falsche Daten zum Absturz bringen lässt, ist ein Sicherheitsproblem und gehört auf den Müll.



  • Mannomann ...

    Bis das Programm produktiv läuft passieren solche Sachen halt mal. Ist das
    so schwierig zu verstehen ? Ich habe eine konkrete Frage und es kommen nur Allgemeinplätzchen.



  • Wenn du es wirklich so lösen willst, findest du in dieser (witzigerweise von Martin geführten) Diskussion eventuell einige Hinweise, wie du die Meldung unterdrücken kannst:

    http://social.msdn.microsoft.com/Forums/de-DE/visualcplusde/thread/41e54593-db7f-4b2a-b56b-75f57cbca704


  • Mod

    Scheppertreiber schrieb:

    Mannomann ...

    Bis das Programm produktiv läuft passieren solche Sachen halt mal. Ist das
    so schwierig zu verstehen ?

    1. Nein! Solche Sachen passieten nicht mal so. Solche Minimal-Checks die einen UAE verhindern snd ein "must". Ich sage nicht, dass man keine Programmfehler verhindern kan. Aber UAE's Aufgrund unsinniger Daten...
    2. Nein! Du hast einen Lösungsweg bekommen. Der gefällt Dir nur nicht.



  • _matze schrieb:

    Wenn du es wirklich so lösen willst, findest du in dieser (witzigerweise von Martin geführten) Diskussion eventuell einige Hinweise, wie du die Meldung unterdrücken kannst:

    http://social.msdn.microsoft.com/Forums/de-DE/visualcplusde/thread/41e54593-db7f-4b2a-b56b-75f57cbca704

    Klar will ich es in dieser Richtung lösen.

    Aus Laufzeitgründen ist es nicht möglich alle einkommenden Daten VOR der
    Verarbeitung auf Sauereien abzuprüfen. Im produktiven Betrieb werden die
    Daten kundenseitig automatisch exportiert und übertragen, da brennt normal
    nichts mehr an.

    Lästig wird es bei Musterdaten wo manchmal schlicht Müll rüberkommt.

    Die Testerei läuft dann halt auf dem schnellsten Rechner den ich in die Finger
    bekomme auf einer lokalen Platte. Dann dort einloggen ist halt lästig um nachzusehen.

    Darum geht es und nicht um konspirative "Pflichten".



  • Scheppertreiber schrieb:

    Im produktiven Betrieb werden die
    Daten kundenseitig automatisch exportiert und übertragen, da brennt normal
    nichts mehr an.

    Normal nicht, aber wenn doch, fällt das dann nicht auf dich zurück? Ich weiß genau, ich würde in solchen Fällen eins auf den Deckel kriegen. Vom Kunden und vom Chef. 😉



  • _matze schrieb:

    Scheppertreiber schrieb:

    Im produktiven Betrieb werden die
    Daten kundenseitig automatisch exportiert und übertragen, da brennt normal
    nichts mehr an.

    Normal nicht, aber wenn doch, fällt das dann nicht auf dich zurück? Ich weiß genau, ich würde in solchen Fällen eins auf den Deckel kriegen. Vom Kunden und vom Chef. 😉

    Ich habe zur Verarbeitung nur ein begrenztes Zeitfenster. Alles kann ich da nicht
    prüfen. Der Kram läuft nachts ab ca 3 Uhr und muß bis 6 Uhr fertig sein. Wenn
    da zB ein Fehler passiert und das Programm (trotz aller Vorsicht) dennoch
    abschmiert wäre es auch nicht so schlecht wenn das startende Batch in diesem
    Fall eine Mail schicken kann anstatt in dieser blöden MsgBox stehenzubleiben.

    In diesem Jahr waren es für einen Kunden knapp 800GB ... wie soll da einn
    Vorabtest aussehen 😕 Der Test ist halt dann der Import.



  • Lösung für XP SP3 in C:

    char *p = NULL;

    SetErrorMode( SetErrorMode( SEM_NOGPFAULTERRORBOX)
    |SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
    strcpy( p, "Hallo");

    erzeugt einen GPF und gibt an das Batch einen errorlevel -1



  • Dazu muss er aber jede Anwednung anpassen, die er aber nicht hat...


Anmelden zum Antworten