Я добавляю несколько пользовательских исключений времени выполнения в свой код и хочу убедиться, что во всех открытых методах я документирую, какое исключение времени выполнения может быть сгенерировано и почему.
Есть ли опция компилятора, mavenПлагин или пользовательский инструмент, который может помочь мне найти пропущенные throws
предложения?С проверенными исключениями это просто, компилятор просто будет жаловаться, если я пропустил одно.
(или я вообще ошибаюсь, и не должны ли они быть документированы или вообще исключение времени выполнения)
Одна вещь, о которой я подумал, состояла в том, чтобы сделать все исключения во время выполнения проверенными, но это была бы разовая проверка.Я хотел бы проверять свой код / документацию каждый раз, когда я делаю изменения, чтобы никогда не забывать документировать свои исключения времени выполнения.
Другим способом может быть фактическая проверка исключений во всем коде и преобразование их во время выполнения только вpublic api:
class Foo {
public void publicMethod() {
try {
privateMethod1();
} catch (CheckedFooException e) {
throw new RuntimeFooException(e);
}
}
private void privateMethod1() throws CheckedFooException {
privateMethod2();
}
private void privateMethod2() throws CheckedFooException {
throw new CheckedFooException();
}
}
Это заставило бы меня думать о CheckedFooException во всех открытых методах.Затем, чтобы проверить, не пропустил ли я документацию, я просто выполнил бы поиск по catch.*CheckedFooException
и проверил все предложения throws
.Скорее громоздкий, хотя.