Я хотел бы задокументировать метод интерфейса в Java как не разрешенный для распространения исключений и провести какой-то статический анализ, подтверждающий, что реализации этого метода перехватывают и обрабатывают любые исключения, которые могли распространяться на него. Что-то вроде @NoThrow
.
Например, я хотел бы иметь возможность написать:
interface SomeServiceProviderInterface {
@NoThrow
@NonNull
SomeResult someComputation();
}
... и иметь некоторую гарантию того, что реализации подчиняются этому контракту интерфейса. Есть ли инструмент аннотации и статического анализа, который уже делает это? Если нет, то знает ли кто-нибудь, достижимо ли это с помощью процессора аннотаций (может ли он видеть, включает ли код блок try...catch?) и/или есть какие-либо указатели или советы о том, как реализовать такую вещь? Спасибо!