Я выбрасываю исключение из моего кода.Проблема в том, что, когда я выбрасываю универсальный класс исключений, я вижу номера строк в трассировке стека.Но как только я создал свой собственный класс исключений, номера строк начинаются с 0,0.
Ниже приведен фрагмент кода:
try{
some code which can throw XYZException
}
catch (XYZException e)
{
throw new MyCustomException("MyCustomMessage", e);
}
Ниже приведен класс исключений, который использует stacktraceинформация для обновления сообщения об исключении:
public class MyCustomException: Exception
{
public MyCustomException()
{
}
public MyCustomException(string message) : base(
GetExtraInfoFromStackTrace(message))
{
}
public MyCustomException(string message, Exception innerException) :
base(GetExtraInfoFromStackTrace(message ),
innerException)
{
}
static string GetExtraInfoFromStackTrace(String message)
{
StackTrace trace = new StackTrace(true);
StackFrame[] frames= trace.GetFrames();
message= GetExtraInfo(message,frames);
return message;
}
}
В информации трассировки стека я не получаю никакой информации о файле, такой как номер строки и номер столбца, но если я изменяю тип отладки на PDBOnly с переносного типа, я могу увидеть файлИнформация.Пожалуйста, дайте мне знать, если я делаю что-то неправильно, поэтому информация о файле недоступна в трассировке стека.Любая помощь будет оценена.