Ich schreibe eine Fehlerprotokollprozedur (aus Sicherheitsgründen kann ich log4net / elmah usw. nicht verwenden), und ich wollte wissen, ob es möglich ist, die Zeilennummer der Zeile, in der der Fehler aufgetreten ist, und / oder den Prozedurnamen zu erhalten wo der Fehler aufgetreten ist?
Ich werde versuchen, Catch finally-Anweisung Blöcke zu erstellen, so hoffe ich, die Zeilennummer des Fehlerhandlers (oder die Zeile, die den Fehler verursacht) und den zugehörigen Prozedurnamen zu erhalten.
Catch (Ausnahme e)
{
Zeichenfolge errMessage = e.Message
Zeichenfolge errTraceDetails = e.StackTrace
}
Dies sollte Ihnen die Details geben, die Sie brauchen.
Wenn Sie auch die PDB-Dateien bereitgestellt haben, sollten Sie die Zeilennummer im Ausnahmetext erhalten.
Ich empfehle jedoch, dies selbst zu schreiben. Ich verwende elmah für diese Art von Sache überall.
Nun, der Stack-Trace befindet sich in der Ausnahme, die Sie fangen und die die Methode enthalten wird, wo die Exception ausgelöst wurde, und die Aufruf-Struktur bis zu dieser Ausnahme. Die Zeilennummer hängt von den Debugging-Symbolen (PDB-Dateien) ab, aber wenn sie bereitgestellt werden, werden sie auch im Stack-Trace enthalten sein.