Zmiana w działaniu wyjątków w przypadku wywołania metody Class.getAnnotation()

Metoda java.lang.Class.getAnnotation() wcześniej rzuciłem niepoprawnie java.lang.ArrayStoreException gdy adnotacja miała wartość tablicową odwołującą się do brakującej klasy. W Java 11 to wywołanie powoduje java.lang.TypeNotPresentException gdy adnotacja ma wartość tablicową odwołującą się do brakującej klasy. Należy zbadać logikę bloku catch, sprawdzając, czy istnieje konieczność obsługi wyjątku TypeNotPresentException lub bardziej ogólnego typu wyjątku środowiska wykonawczego.

Ta reguła oznacza połączenia flagą java.lang.Class.getAnnotation() metoda, gdy wywołanie metody jest otoczone try oświadczenie z catch klauzula dla ArrayStoreException.

Ta reguła ma automatyczną poprawkę zastępującą ArrayStoreException z TypeNotPresentException w try/catch przy użyciu Class.getAnnotation(). Skopiuj niestandardową konfigurację do pliku kompilacji aplikacji, aby włączyć automatyzację poprawek.

Dokumentacja Javadoc dotycząca klasy Class jest dostępna na stronie Class (Klasa Class). Więcej informacji na temat zmian w Java SE 11 można znaleźć na stronie Usunięte funkcje i opcje w JDK 11.