Как документировать непроверенные исключения? [закрыто]

Джошуа Блох в своей книге «Эффективная Java» пишет:

«Используйте тег Javadoc @throws, чтобы задокументировать каждое непроверенное исключение, которое метод может бросать, но не используйте ключевое слово throws для включения неотмеченных исключения в объявлении метода. "

Что ж, это действительно звучит разумно, но как узнать, какое непроверенное исключение может вызвать мой метод?

Давайте подумаем о следующем классе:

public class FooClass {

    private MyClass[] myClass;

    /**
     * Creates new FooClass
     */
    public FooClass() { 
        // code omitted
        // do something with myClass
    }

    /**
     * Performs foo operation.<br />
     * Whatever is calculated.
     * @param index Index of a desired element
     * @throws HorribleException When something horrible happens during computation
     */
    public void foo(int index) {
        try {
            myClass[index].doComputation();
        } catch (MyComputationException e) {
            System.out.println("Something horrible happened during computation");
            throw new HorribleException(e);
        }
    }
}

Я задокументировал HorribleException, но совершенно очевидно, что Метод foo также может генерировать непроверенные исключения java.lang.ArrayIndexOutOfBoundsException . Чем сложнее становится код, тем труднее думать обо всех непроверенных исключениях, которые может генерировать этот метод. Моя среда IDE не очень помогает мне в этом и не помогает любой инструмент. Поскольку я не знаю никакого инструмента для этого ...

Как вы справляетесь с такой ситуацией?

24
задан Xorty 19 September 2010 в 18:16
поделиться