Я хочу получить номер строки кода, вызывающий ошибку. Например:
static void Main(string[] args)
{
using (SqlConnection conn = new SqlConnection(bagcum))
{
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "DONTINSERT into GIVEMEERROR(CamNo,Statu) values (" + 23 + "," + 0 + ")";
conn.Open();
int n = cmd.ExecuteNonQuery();
}
}
Так как мы знаем, что код не работает, он будет вызывать исключение. Номер строки кода, который:
int n = cmd.ExecuteNonQuery();
Итак, как можно получить номер строки с помощью try-catch
? Я попытался использовать класс StackTrace
, но он дает номер строки как 0:
static void Main(string[] args)
{
try
{
using (SqlConnection conn = new SqlConnection(bagcum))
{
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = "DONTINSERT into GIVEMEERROR(CamNo,Statu) values (" + 23 + "," + 0 + ")";
conn.Open();
int n = cmd.ExecuteNonQuery();
}
}
catch (Exception ex)
{
System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace(ex, true);
Console.WriteLine("Line: " + trace.GetFrame(0).GetFileLineNumber());
}
}
ВЫВОД:
Line:0
Обновление:
Обычно строка ошибки составляет 22, поэтому я должен получить это число.
Спасибо