В a catch
блок, как я могу получить номер строки, который выдал исключение?
Если вам нужен номер строки не только для форматированной трассировки стека, которую вы получаете из Exception.StackTrace, вы можете использовать класс StackTrace:
try
{
throw new Exception();
}
catch (Exception ex)
{
// Get stack trace for the exception with source file information
var st = new StackTrace(ex, true);
// Get the top stack frame
var frame = st.GetFrame(0);
// Get the line number from the stack frame
var line = frame.GetFileLineNumber();
}
Обратите внимание, что это будет работать, только если для сборки доступен pdb-файл.
Вы можете включить файлы символов .PDB
, связанные со сборкой, которые содержат информацию метаданных, и когда возникает исключение, оно будет содержать полную информацию в трассировке стека о том, где возникло это исключение. . Он будет содержать номера строк каждого метода в стеке.
В файле Global.resx есть событие Application_Error
оно срабатывает всякий раз, когда происходит ошибка, вы можете легко получить любую информацию об ошибке и отправить ее по электронной почте для отслеживания ошибок.
Также я думаю, что все, что вам нужно сделать, это скомпилировать global.resx и добавить его dll (2 dll) в папку bin, и он будет работать!
Простой способ, используйте функцию Exception.ToString ()
, она вернет строку после описания исключения.
Вы также можете проверить базу данных отладки программы, поскольку она содержит отладочную информацию / журналы обо всем приложении.