Из весенних документов,
Встроенные контейнеры сервлетов - добавьте сервлет, фильтр или прослушиватель в приложение
Чтобы добавить сервлет, Фильтр или сервлет * Слушатель предоставляет для него определение @Bean.
blockquote>Например:
@Bean public Filter compressFilter() { CompressingFilter compressFilter = new CompressingFilter(); return compressFilter; }
Добавьте эту конфигурацию
@Bean
в свой класс@Configuration
и фильтр будет зарегистрирован при запуске.Также вы можете добавить Servlets, Filters и Listeners, используя сканирование классов,
@WebServlet, @WebFilter и @WebListener аннотированные классы могут автоматически регистрироваться в встроенном контейнере сервлетов, аннотируя класс @Configuration с помощью @ServletComponentScan и указывая пакет (ы), содержащий компоненты, которые вы хотите зарегистрировать. По умолчанию @ServletComponentScan будет сканировать из пакета аннотированного класса.
blockquote>
Если вы делаете это, чтобы определить, есть ли он в любом отладчике (поясняется @JaredPar ), вы можете использовать Debugger .IsAttached в обработчике исключений.
try
{
// ...
}
catch(Exception ex)
{
if (!Debugger.IsAttached)
{
ExceptionHandler.Frob(ex);
}
else
{
throw;
}
}
В качестве альтернативы:
public static void Frob(Exception ex)
{
if (Debugger.IsAttached)
{
Debugger.Break();
}
}
Рассматривали ли вы аргументы командной строки? Запустите программу из Visual Studio с флагом --no-exception-processing (или любым другим подходящим звуком) и не обрабатывайте исключения, если этот аргумент передается. Когда вы запустите программу в другом месте, без этого аргумента, она будет вести себя нормально.
Я не занимаюсь разработкой .net, но в java я сделал это, передав флаг в параметры запуска приложения. Таким образом, вы можете передать флаг отладки в приложение из среды IDE, а затем проверить это, когда приложение запускается как исполняемый файл, флаг не будет присутствовать. Я был бы удивлен, если бы в .net не было чего-то подобного.
Вместо отслеживания по дереву процессов я бы добавил флаг конфигурации, который включает функцию отчетов. Флаг всегда может быть установлен по умолчанию на «true», если вы не находитесь в среде DEV, тогда вы установите его на «false».