0

私はこのコードを持っています:

private void btnNext_Click(object sender, RoutedEventArgs e){
  try
      {
         // Lots of codes in here
      }

  catch (Exception ex)
      {
        System.Windows.MessageBox.Show(ex.Message + Environment.NewLine + ex.StackTrace.ToString()) 
      }
  finally
      {}
}

例外をキャッチしていますが、コード内のどこで例外が発生しているかはわかりません。私が得ているのはこれだけです。

   Object reference not set to an instance of an object
   at ProjectPath.btnNext_Click(Object sender, RoutedEventArgs e)

リリース コードは多くのマシンで正常に動作しますが、少数のマシンではこの例外がスローされます。それらのマシンで実行中にコードのどこで例外が発生しているのかわかりません。例外が発生している正確な行を見つける方法はありますか? ex.StackTrace仕事を成し遂げませんでした。

どんな助けでも大歓迎です。

4

2 に答える 2

2

すべてを同じブロックに入れるのではなく、例外がスローされると思われる領域の周りに個別の try-catch ブロックを配置するのが理想的です。

それ以外の場合は、デバッグ時に pdb ファイルが作成されます。ファイルが実行されているフォルダーに存在する場合は、行番号を取得できます。

とはいえ、このエラーはかなり一般的で、どこかに null があります。

追加: ここでは、何らかの理由でデバッガーを例外で停止できない、および/またはサード パーティなどにデプロイしているためにトレースできないと想定しています。

于 2013-03-28T21:30:00.863 に答える