Ну, в .NET у вас есть то, что называется FirstChanceException. По сути, они выбрасываются до обработки исключения. Есть два способа взглянуть на проблему, которую вы здесь представляете. Один с точки зрения отладки. При отладке вы можете просто настроить отладчик так, чтобы он перехватывал выброшенные исключения из окна «Отладка / Исключения». Это проще в интерактивном контексте. Если вам нужно записать эту информацию в неинтерактивном контексте, я бы сделал нечто похожее на то, о чем говорит CMS ...
try
{
...
}
catch(Exception ex)
{
System.Diagnostics.StackTrace stackTrace = new System.Diagnostics.StackTrace(ex);
System.Diagnostics.StackFrame firstFrame = stackTrace.GetFrame[0];
Console.WriteLine(firstFrame.GetFileLineNumber);
...
}
Единственное отличие состоит в том, что мы получаем всю трассировку стека, а затем переходим к первому кадру, в который первоначально было сгенерировано исключение.