How to get error line number of code using try-catch

前端 未结 10 936
轮回少年
轮回少年 2020-12-05 13:08

I want to get line number of code which cause error. For example;

static void Main(string[] args)
{
    using (SqlConnection conn = new SqlConnection(bagcum)         


        
10条回答
  •  温柔的废话
    2020-12-05 13:40

    Try this simple hack instead:

    First Add this (extension) class to your namespace(most be toplevel class):

    public static class ExceptionHelper
    {
        public static int LineNumber(this Exception e)
        {
    
            int linenum = 0;
            try
            {
                //linenum = Convert.ToInt32(e.StackTrace.Substring(e.StackTrace.LastIndexOf(":line") + 5));
    
                //For Localized Visual Studio ... In other languages stack trace  doesn't end with ":Line 12"
                linenum = Convert.ToInt32(e.StackTrace.Substring(e.StackTrace.LastIndexOf(' ')));
    
            }
    
    
            catch
            {
                //Stack trace is not available!
            }
            return linenum;
        }
    }
    

    And its done!Use LineNumber method whenever you need it:

    try
    {
    //Do your code here
    }
    catch (Exception e)
    {
    int linenum = e.LineNumber();
    }
    

提交回复
热议问题