Я часто сталкиваюсь с той же проблемой. В самом ядре моего Java-приложения у меня есть методы, которые генерируют исключение, которое невозможно обработать любым вызывающим вызовом метода. Я должен пузырить эти исключения до основного метода. Все эти исключения суммируются, поэтому у меня есть много подсказок на более высоких уровнях моего Приложения.Java Исключения, которые невозможно обработать
E.g. У меня есть класс NodeJsManager.java в основе моего приложения:
public class NodeJsManager {
public static void startNodeJs() throws ExecuteException {
// Code to start NodeJs Server goes here
}
}
Для запуска NodeJs сервера, я должен выполнить что-то в командной строке. Я могу сделать это с классом apache org.apache.commons.exec.CommandLine. Но он выдает ExecuteException, если выполнение завершено с кодом ошибки. Без запуска NodeJs мое приложение бесполезно. Никакой метод не может поймать это исключение, это всего лишь требование для моего приложения для работы. Таким образом, исключение создаст пузырь практически весь жизненный цикл приложения. У меня есть другие менеджеры, которые делают то же самое (ConfigurationManager, который генерирует исключение, если неправильный путь конфигурации). Все вместе он суммирует во многих высказываниях при каждом методе на более высоком уровне, где я даже не помню причины этого исключения.
Как вы справитесь с этой проблемой? Я должен сделать что-то совершенно неправильное, потому что не могу найти похожие сообщения, которые описывают мою проблему!
С уважением Майк
Update
Я просто раскопали мой хороший старый Эффективное Java книги. Автор (Ява архитектор Google) писал о Исключении:
... использование проверяемого исключений для извлекаемых условий и выполнения исключений для ошибок программирования.
...
Если не ясно, возможно ли восстановление, вы, вероятно, лучше использовать непроверенное исключение ...
В моем случае это явно не возмещено, поэтому бросать исключение во время выполнения - это путь. Я всегда думал, что исключение во время выполнения должно быть предотвращено, это меняет мою точку зрения об исключениях в Java.