2016-05-25 2 views
0

У меня есть приложение в C# для Windows Mobile 6.5. Проблема в том, что после большого количества времени использования (2-3 часа), иногда приложение вылетает с «NullReferenceException» в Main().NullReferenceException в Windows Mobile 6.5

У меня есть все программы с попыткой поймать, тестирование в основном, чтобы поймать различные исключения (ObjectDisposed, NullException и исключение), а также я пытался с этим событием:

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

Приложение по-прежнему висит после времени использования. Кто-нибудь знает какое-либо приложение для отслеживания таких сбоев, как DebugDiag в Windows, или какой-то фрагмент кода, чтобы поймать в журнале это исключение?

код в основной функции выглядит следующим образом:

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

Спасибо за ваш ответ. Я знаю, что вызывает исключение NullReferenceException и способы его избежать, проблема в том, что я не знаю, где проблема, поэтому мне нужен способ поймать ее для ее решения. – Gonzalo

+0

Ваш способ поймать это будет с блоком 'try ... catch'. Можете ли вы опубликовать свой код 'try ... catch'? –

+0

Я отредактировал сообщение с кодом – Gonzalo

ответ

0

Единственные способы получить источник исключения являются:

  1. обертывание весь код, который может бросить исключение с try..catch , При использовании StackTrace и InnerException оберточного основной функции с попытаться поймать хороший старт
  2. использовать файл журнал, чтобы отметить исключение в блоке поймать
  3. использование StackTrace и InnerException недвижимость, чтобы получить подробную информации о том, за исключение о
  4. запустить приложение в сеансе отладки, возможно, с помощью удаленной отладки с помощью сети
+0

Я выполнил шаги с 1 по 3 и попытался выполнить шаг 4, но удаленная отладка в Windows Mobile не позволяет мобильному подключиться к Интернету. – Gonzalo

+0

Если ваша настройка мобильной сети позволяет подключиться к Интернету и удаленная отладка зависит от настройки мобильного устройства. См. «Подключение к Интернету/Работа» и установите для «Работа и работа» значение «Это подключение к Интернету». Затем установите сетевую карту для подключения к Работе. См. Различные сведения о настройке диспетчера подключений. – josef

Смежные вопросы