Узнать название класса и метода
Можно как то узнать название класса и метода ?
Возможно такие вещи как то иначе решаются...
Я хотел бы в блоке catch написать что то такое:
Debag.Writeline($"{Название класса} {Название метода} {ex.Message}")
Ответы (1 шт):
Автор решения: aepot
→ Ссылка
Зачем, если есть трассировка стека? И название класса, и метода и номер строки кода. Debug.WriteLine(ex.ToString()); - и не надо мудрить.
А так имя класса не получится, а вот метода можно
static void Main(string[] args)
{
try
{
throw new ArgumentException("My message");
}
catch (Exception ex)
{
Console.WriteLine($"{ex.GetType().Name} in method {ex.TargetSite}: {ex.Message}");
}
Console.ReadKey();
}
ArgumentException in method Void Main(System.String[]): My message
Тогда как ex.ToString() выдаст следующее
System.ArgumentException: My message
at ConsoleApp1.Program.Main(String[] args) in C:\Source\ConsoleApp1\ConsoleApp1\Program.cs:line 18
Согласитесь, удобнее? Именно трассировка стека - ваш спасательный круг при поиске источника исключения.