Cześć. Mam pytanie odnośnie wyjątków, a dokładniej o słówko throws.
Ad1 .Wyczytałem na internecie, że powinno się tylko "rzucać" w sygnaturze metody tylko wyjątki typu checked (wiadomo) i musimy je obsłużyć w którejś metodzie, która wywołuję metodę z throws, to prawda? Kładę nacisk tutaj na musimy.
Wczytam cytat z jakiejś stronki: Throws keyword can be placed in the method declaration. It denotes which exceptions can be thrown from this method. We must handle these exceptions with try-catch.
Ad2. Wg tego co jest u góry muszę tutaj obsłużyć wyjątek SQLException, który jest typu checked, czyli kompilator powinien wołać o jego obsłużenie, natomiast tego nie robi o program działa poprawnie.
SQLException zaczyna się w repo, później przechodzi do "silnika", następnie do maina. Wszędzie są dodane końcówki throws SQLException
, ale w żadnej metodzie tego nie obsługuje. O co tutaj chodzi, dlaczego to działa? Gist: https://gist.github.com/must1/57d5986d5cd58237871d479038e0f1d9