в общем случае вы никогда не должны бросать класс / объект Exception напрямую, а только производные, например:
throw new SecurityException("user should not be allowed to access this method...");
в такой ситуации, чего вам не хватает в журнале или на странице?
если вы используете глобальный обработчик исключений приложения и входите оттуда с помощью Log4Net
или NLog
, вы сможете получить доступ ко всей цепочке исключений от внешнего к внутреннему и т. Д. В зависимости от того, как вы настраиваете и используетерамки ведения журнала.Желтая страница IIS / ASP.NET может быть неполной, но в любом случае должна отображать трассировку стека.
, если вы хотите выбросить собственное исключение из блока catch, вы оборачиваете фактическое исключение, полученное из catch в этомпуть:
throw new SecurityException("user should not be allowed...", exc);
Редактировать : попробовал то, что вы предложили, и Log4Net зарегистрировал следующее в текстовом файле:
System.Security.SecurityException: более явное исключение ---> System.Security.SecurityException: исходное исключение в EDICheckerApp.Program.boom () в C: \ DEV_RPP \ Program.cs: строка 45
--- Конец внутренней трассировки стека исключений --- в EDICheckerApp.Program.boom () в C: \ DEV_RPP \ Program.cs: строка 49
в EDICheckerApp.Program.Main (String [] args) в C:\ DEV_RPP \ Program.cs: строка 27