2016-05-25 8 views
0

Ich habe eine Anwendung in C# für Windows Mobile 6.5. Das Problem ist, dass nach einiger Zeit (2-3 Stunden) manchmal die App mit "NullReferenceException" in Main() abstürzt.NullReferenceException unter Windows Mobile 6.5

ich die ganze Programm mit Try-Catch habe, in dem Haupt Testen verschiedene Ausnahmen (ObjectDisposed, NullException und Exception) zu fangen, und auch habe ich mit der Veranstaltung versucht:

AppDomain.CurrentDomain.UnhandledException += 
    new UnhandledExceptionEventHandler(OnUnhandledException); 

Die Anwendungen nach wie vor hängen nach einer Zeit der Verwendung. Kennt jemand eine App, um dies zu überwachen, stürzt wie DebugDiag in Windows, oder ein Stück Code in einem Protokoll diese Ausnahme zu fangen?

-Code in Hauptfunktion ist wie folgt:

static void Main() 
    { 
     AppDomain.CurrentDomain.UnhandledException += 
        new UnhandledExceptionEventHandler(OnUnhandledException); 
     try 
     { 

      CLog.EscribirEnLog("Main");    

      using (AppExecutionManager execMgr = new AppExecutionManager(appName)) 
      { 
       if (execMgr.IsFirstInstance) 
       { 

        Application.Run(new FormInicioSesion()); 
        CUtiles.MatarProceso("FoxitReader.exe"); 
        CUtiles.MatarProceso("pimg.exe"); 
       } 
      } 
     } 
     catch (NullReferenceException ex) 
     { 
      CLog.EscribirEnLog("ERROR Null " + ex.StackTrace); 
      Application.Exit(); 
     } 
     catch (ObjectDisposedException e) 
     { 
      CLog.EscribirEnLog("ERROR : Excepcion en main : " + e.StackTrace.ToString() + "; " + e.InnerException.ToString() + "; " + e.Message.ToString()); 

      Application.Exit(); 
     } 
     catch (Exception e) 
     { 
      CLog.EscribirEnLog("ERROR : Excepcion : " + e.StackTrace.ToString() + "; " + e.InnerException.ToString() + "; " + e.Message.ToString()); 
      Application.Exit(); 

     } 
     finally 
     { 
      CLog.EscribirEnLog("Main-Finally"); 
     }   

    } 
+0

Vielen Dank für Ihre Antwort verwendet wird. Ich weiß, was eine NullReferenceException verursacht und Möglichkeiten, es zu vermeiden, das Problem ist, dass ich nicht weiß, wo das Problem ist, deshalb brauche ich eine Möglichkeit, es zu fangen, um es zu lösen. – Gonzalo

+0

Ihr Weg, um es zu fangen wäre mit einem "Versuch ... Fang" -Block. Kannst du posten, was dein 'try ... catch' Code ist? –

+0

Ich habe den Beitrag mit dem Code – Gonzalo

Antwort

0

Die einzigen Möglichkeiten, um die Quelle der Ausnahme zu bekommen sind:

  1. wickeln alle Code, der eine Ausnahme mit try..catch werfen kann . Bei der Verwendung von Stacktrace und Innerexception die Hauptfunktion Umwickeln mit versuchen Fang ist einen guten Anfang
  2. eine Log-Datei verwenden, um die Ausnahme im catch-Block
  3. Verwendung Stacktrace und Innerexception-Eigenschaft zu erhalten detaillierte Informationen darüber, was die Ausnahme beachten ist über
  4. Ihre Anwendung in einer Debug-Sitzung ausgeführt werden, möglicherweise Remote-Debugging über Netzwerk
+0

bearbeitet Ich habe die Schritte 1 bis 3 gefolgt und versuchte Schritt 4, aber Remote-Debugging in Windows Mobile ermöglicht das Handy nicht mit dem Internet verbinden. – Gonzalo

+0

Wenn Ihr mobiles Netzwerk-Setup eine Internetverbindung zulässt und das Remote-Debugging von der mobilen Einrichtung abhängt. Weitere Informationen finden Sie unter Herstellen einer Verbindung mit dem Internet/Arbeit, und stellen Sie beide auf Arbeit und das Arbeitsnetzwerk auf "Dies verbindet sich mit dem Internet". Stellen Sie dann die Netzwerkkarte so ein, dass sie sich mit Work verbindet. Sehen Sie sich die verschiedenen Informationen zum Setup des Verbindungsmanagers an. – josef

Verwandte Themen