Access-Violations unterdrücken???



  • hi@all;

    bei mir erscheinen manchmal völlig willkürlich Access Violations....

    und ich will die user net mit diesen meldungen "langweilen" 🙄 ...

    also ... wie oder ist es überhaupt möglich die Access Violations zu unterdrücken??

    ___
    danke.


  • Mod

    Hallo

    wie waere es mit

    Try und catch

    MfG
    Klaus



  • Wie wäre es damit so zu programmieren, das gar keine AcessVoilations auftreten? Die erscheinen da nicht zum Spass sondern weil was nicht stimmt.



  • soll ich den exception teil rausnehmen?

    USEFORM("Unit1.cpp", Form1);
    //---------------------------------------------------------------------------
    WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
    {
            try
            {
                     Application->Initialize();
                     Application->CreateForm(__classid(TForm1), &Form1);
                     Application->Run();
            }
            catch (Exception &exception)
            {
                     Application->ShowException(&exception); // <<----
            }
            catch (...)
            {
                     try
                     {
                             throw Exception(""); // <<----
                     }
                     catch (Exception &exception)
                     {
                             Application->ShowException(&exception); // <<----
                     }
            }
            return 0;
    }
    

    oder wie meinste?



  • @junix

    bei mir treten die auch fast nie auf... aber sehr oft mbei meinem freund...

    und im code sollte nichts falsch sein... oder ich hab was übersehen... das ist jede menge code...



  • Fast nie ist auch nicht gut genug... Du hast irgendwo einen Fehler in Deinem Programm. Anstatt an den Symptomen herumzudoktorn, solltest Du den Fehler identifizieren und beheben.
    Welche BCB-Version hast Du? Ab der Pro ist der CodeGuard dabei. Der könnte in diesem Fall helfen.



  • Wenn es unbedingt sein muss, kannst du es so versuchen:

    USEFORM("Unit1.cpp", Form1); 
    //--------------------------------------------------------------------------- 
    WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) 
    { 
            try 
            { 
                     Application->Initialize(); 
                     Application->CreateForm(__classid(TForm1), &Form1); 
                     Application->Run(); 
            } 
            catch (...) 
            { 
                     // Ignore Exception
            } 
            return 0; 
    }
    

    Du musst dir dann aber im Klaren sein, dass dein Programm dadurch unberechnbare, weil nicht identifizierbare, Fehler ausspuckt!

    Und wenn dein Programm crasht, dann weißt du nicht was passiert ist!



  • Ich hab nur den bcb 6...

    aber ich kann die stelle net identifizieren...
    das hilft mir alles nicht... ich hab schon stunden lang gesucht.. aber nichts gefunden...
    wie soll ich die auch finden... diese adressen helfen net wirklich .. und dieses asm im cpu window au net...

    und auf zeilen werde ich auch net verwiesen...

    mir bleibt nichts übrig als diese meldungen einfach zu unterdrücken... am programmverlauf ändert sich nichts... das läuft ganz normal weiter....



  • thx @ reyx

    ich werds vorübergehend so machen...
    vielleicht gibts ja noch wunder .. und ich entdecke irgendwann den fehler....



  • Weißt du, was ein Debugger ist?



  • Willkommen in der Softwareentwicklung!

    fateman schrieb:

    und dieses asm im cpu window au net...

    Guggst du hier

    vielleicht gibts ja noch wunder .. und ich entdecke irgendwann den fehler....

    Da sollten keine Wunder geschehen sondern du solltest dich vom Softwarebasteln verabschieden und systematisch nach dem fehler suchen. Solche fehler sollten nie auftreten. Du kannst von Glück reden, das heutige Windosen der NT linie solche Software gut "vertragen". Andere Windosen würden sich wahrscheinlich furchtbar verschlucken und instabil werden. ein weiteres Glück dürfte die extreme Toleranz von XP & co sein. NT4 hätte deine Software vermutlich gar nie wirklich starten lassen, bzw. einfach mal schnell beendet...


Anmelden zum Antworten