Die Methode Get-name, warf Ausnahme

Weiß ich. Eine ähnliche Frage wurde bereits gestellt.

aber ich habe nicht genau die Lösung aus, die.

Habe ich eine Schaltfläche click-Ereignis, in der ich eine Methode FillCombo().

Schaltfläche Click-Ereignis

private void button1_Click(object sender, EventArgs e)
{
      try
      {
          cmbTemplates.Items.Clear();
          lstFiles.Clear();
          FillCombo();                
      }
      catch (Exception ex)
      {
           MethodBase site = ex.TargetSite;
           Log(ex.ToString(), site == null ? null : site.Name);                
      }
}

Wenn ich ausgetestet habe, fand ich, dass die exception Auftritt von FillCombo() Methode. Nach, dass ich den Wert von site.Name als WinIOError statt FillCombo.

Versuchte ich eine andere Methode GetExecutingMethodName() die beantwortet wurde durch Chris Gessler in So bekommen Sie den Namen der Methode, die die Ausnahme verursacht hat Frage. Also habe ich versucht, den Versand der name der Methode, die die Ausnahme verursacht mit GetExecutingMethodName() Methode

Log(ex.ToString(), GetExecutingMethodName());

Aber ich habe das Ergebnis als System.Windows.Forms.Control.OnClick statt FillCombo.

Wie bekomme ich den tatsächlichen Namen der Methode, die die Ausnahme verursacht?

  • Haltepunkte setzen, um den code Debuggen und schauen stacktrace
  • Ich kann wissen, in der Dubug-Modus. Aber ich muss melden Sie die Fehler in eine Datei. In der Produktion Umwelt, die ist zu gehen, zu sitzen und zu Debuggen!!! @saurabh64
  • Sie sollte sich der gesamte stack-trace. Diese geben in der Regel genug Kontext, um festzustellen, das Problem.
  • I get the value of site.Name as WinIOError instead of FillCombo. Das ist wahrscheinlich, weil Ihre FillCombo keine Ausnahme auslösen, sondern tiefer in Sie, wenn wir das Telefon in die framework-code, der die Ausnahme ausgelöst.
Schreibe einen Kommentar