Show line number in exception handling

后端 未结 5 1654
独厮守ぢ
独厮守ぢ 2020-12-01 10:52

How would one display what line number caused the error and is this even possible with the way that .NET compiles its .exes?

If not is there an automated way for Exc

5条回答
  •  抹茶落季
    2020-12-01 11:43

    To see the stacktrace for a given Exception, use e.StackTrace

    If you need more detailed information, you can use the System.Diagnostics.StackTrace class (here is some code for you to try):

    try
    {
        throw new Exception();
    }
    catch (Exception ex)
    {
        //Get a StackTrace object for the exception
        StackTrace st = new StackTrace(ex, true);
    
        //Get the first stack frame
        StackFrame frame = st.GetFrame(0);
    
        //Get the file name
        string fileName = frame.GetFileName();
    
        //Get the method name
        string methodName = frame.GetMethod().Name;
    
        //Get the line number from the stack frame
        int line = frame.GetFileLineNumber();
    
        //Get the column number
        int col = frame.GetFileColumnNumber();
    }
    

    This will only work if there is a pdb file available for the assembly. See the project properties - build tab - Advanced - Debug Info selection to make sure there is a pdb file.

提交回复
热议问题