top of page

.net: нюанс Stack Trace для re-thrown-исключений

  • Фото автора: Алик Ким
    Алик Ким
  • 28 дек. 2024 г.
  • 1 мин. чтения



Обнаружил такой нюанс StackTrace для исключений:


если исключение поймать, а потом прокинуть дальше -


catch (Exception e)

{

Console.WriteLine(e.Message);

Console.WriteLine(e.StackTrace);

throw;

}


то в .net core дальше это исключение будет вести себя так же, как если бы его вообще не ловили.


а в .Net Framework его свойство StackTrace для уровня, на котором исключение было поймано и прошено дальше, будет содержать номер линии этого "throw;", а не номер линии, откуда это исключение вылетело:


try

{

f15(); // <--- не вот этой

}

catch (Exception e)

{

Console.WriteLine(e.Message);

Console.WriteLine(e.StackTrace);

throw; // <--- а вот этой

}



можно сделать 2 вывода:

1) раньше было хуже: при расследовании исключений по логам информация немного скрадывалась. теперь все идеально


2) может, мне какое нибудь интересное хобби завести 🤔


 
 
 

Недавние посты

Смотреть все

Comments


Околокомпьютерный блог Алика

  • alt.text.label.Facebook

© Околокомпьютерный блог Алика , 2022. Сайт создан на Wix.com

bottom of page