Информация о файле не заполняется в трассировке стека, когда я использую пользовательский класс исключений в c # - PullRequest
0 голосов
/ 04 июля 2019

Я выбрасываю исключение из моего кода.Проблема в том, что, когда я выбрасываю универсальный класс исключений, я вижу номера строк в трассировке стека.Но как только я создал свой собственный класс исключений, номера строк начинаются с 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 с переносного типа, я могу увидеть файлИнформация.Пожалуйста, дайте мне знать, если я делаю что-то неправильно, поэтому информация о файле недоступна в трассировке стека.Любая помощь будет оценена.

...