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ę umożliwiającą zastąpienie ArrayStoreException z TypeNotPresentException w try/catch używając Class.getAnnotation(). Skopiuj konfigurację niestandardową do pliku kompilacji aplikacji, aby włączyć automatyzację poprawek.

Dokumentacja Javadoc dotycząca klasy Class jest dostępna na stronie Klasa. Więcej informacji na temat zmian w środowisku Java SE 11 zawiera publikacja Składniki i opcje usunięte z pakietu JDK 11.