Краткая форма: Как генерировать исключения (или делать аккуратную, чистую обработку исключений или, по крайней мере, принудительно останавливать выполнение), когда переопределенный метод не генерирует исключения?
Контекст: У нас есть лицензия на частное программное обеспечение, которое можно автоматизировать с помощью Java-макросов. Пользовательский макрос должен иметь следующую форму:
public class MyMacro extends SoftwareMacro {
public void execute() {
// user code goes here
}
}
т.е. класс, который расширяет SoftwareMacro
и имеет метод с именем execute
, который переопределяет базовый класс 'execute
. Содержимое этого переопределенного execute
- это то, что ... хорошо ... выполняется, когда макрос "проигрывается".
Но переопределенный метод execute
, по-видимому, не выдает никаких исключений.
execute() in com.mycompany.mypackage.MyMacro cannot implement execute() in
somesoftware.base.SoftwareMacro
overridden method does not throw java.lang.Exception
Может быть, это наивно, но во время разработки я обычно хотел бы иметь соответствующий пузырь типа исключения до вершины и заставить выполнение останавливаться, чтобы я мог их увидеть и перейти к отладке. Это, очевидно, не вариант здесь.
Должен ли я вместо этого прибрасывать RuntimeException
? (поскольку RuntimeException
указывать не нужно) Это выглядит немного неаккуратно и является "нарушением в духе" противоречий метода базового класса.
P.S. Нет, я не могу изменить исходный код переопределенного метода execute
.