Laden...

64 Bit Visual Studio hält nicht an Windows Form Events bei Exception

Erstellt von LastGentleman vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.907 Views
LastGentleman Themenstarter:in
1.274 Beiträge seit 2005
vor 13 Jahren
64 Bit Visual Studio hält nicht an Windows Form Events bei Exception

Hallo zusammen,

hab ein kleines Problem und es sollte Standard sein. Da ich nicht viel in VS programmiere weiß ich nicht so ganz mehr ob das gegangen ist.

und zwar, wenn in dem **Form_Open Event **ein Fehler auftreten sollte wird diese Zeile ignoriert und er bricht ohne Meldung die Ausführung ab.
Mein Code sieht so aus

habe eine Argument Exception in einem Try Catch Block drinnen, Catch wird ausgeführt.

Eine unhandelt Exception die dannach steht wird einfach ignoriert?
Habt ihr das auch oder sollte ich Visual Studio mal probieren neu zu installieren?

Jemand der das Problem auch haut und es als Normal bezeichnet wird.

VS do not stop execution on error

"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein

LastGentleman Themenstarter:in
1.274 Beiträge seit 2005
vor 13 Jahren

Hab ein cooles verhalten raus gefunden, das zumindest für mich als erstes eine Notlösung wäre.

wenn ich die ThreadException abfange kommt unten der Error im Visual Studio ohne nicht.

Bin am überlegen wie ich das am besten durch debuggen könnte. Hätte jemand eine Idee?


   static class Program
    {
        [STAThread]
        static void Main()
        {
            Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
            Form frm = new Form();
            frm.Text = "Error TestForm";
            EventHandler Form_LoadEventHandler = new EventHandler(frm_Load);
            frm.Load += Form_LoadEventHandler;

            frm.ShowDialog();

            frm.Load -= Form_LoadEventHandler;
            frm.Close();
        }

        static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
        {
            Console.WriteLine(e.Exception.Message);
        }

        static void frm_Load(object sender, EventArgs e)
        {
            try
            {
                throw new ArgumentException("Error in Try");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            throw new ArgumentException("Error ohne Try");
        }
    }

"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein

C
252 Beiträge seit 2007
vor 13 Jahren

Kann ich bestätigen, bei mir ist es auch so. Aber wie bereits im Thread steht ist das ein known Bug.

This is a known bug. I am sorry that although we know that this issue has bad impaction to our user, we can't fix it right now. It is because the bug is caused from windows kernel side and it is very hard to fix.

As alinap said, the only workaround now is to break when exception is thrown. However, it is far more than a solution to this issue. I suggest you to switch to x86 system for development.

Aber wäre folgendes nicht akzeptabel für dich?
Dann bleibt der Debugger stehen.

go to Debug -> Exceptions and check the Thrown option.

LastGentleman Themenstarter:in
1.274 Beiträge seit 2005
vor 13 Jahren

Danke chavez für das probieren bei dir.
Das mit dem Debugger ist blöd, weil er immer hält auch wenn ich die Exception abfange.

werde in den Anwendungen immer

  
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);

reingehen damit könnte ich leben. Auf 32 Bit zurücksteigen geht nicht mehr, dafür ist der Arbeitsspeicher zu groß. 😃

"Das Problem kennen ist wichtiger, als die Lösung zu finden, denn die genaue Darstellung des Problems führt automatisch zur richtigen Lösung." Albert Einstein