Proszę, popraw mnie, jeśli jest to błędne: W instrukcji wypróbowania zasobów przy użyciu języka Java 7 wszelkie wyjątki wygenerowane przez metodę zasobu close()
muszą zostać zadeklarowane jako odrzucone przez moją metodę lub muszę zawinąć całą próbę w inną try
, która przechwytuje dowolne wyjątki zgłoszone przez close()
.Try-with-resources: Czy muszę rzucać lub przechwytywać wyjątki metody close()?
Jeśli tak, to muszę się zastanowić, czy z tego skorzystam. Z pewnością nie chcę, aby throw
wyjątków zgłoszonych przez close()
, dzwoniący nie będzie wiedział, co z tym zrobić. I try
zawijanie innego try
tylko do obsługi close()
nie wyglądałoby zbyt elegancko, przynajmniej dla mnie.
EDYCJA: Myślę, że przypadkowo zadałem dwa pytania, z których jeden był duplikatem.
Pytanie 1. Czy muszę zadeklarować, że moja metoda wyrzuca wyjątek z metody close()
lub owija try-with-resources w innej próbie? (Nie otrzymano odpowiedzi w proponowanym duplikacie).
Pytanie 2. Czy istnieje sposób na zamknięcie zasobu w trybie cichym? (Oczywiście duplikat, więc biorę to zdanie nie wchodzi w rachubę. Mam nadzieję, że to sprawia, że pytanie w zadowalający sposób unikalny.)
Czy masz dużo zasobów, które rzucają z 'close()'? –
Tylko kilka, ale używam ich dużo (ResultSet, BufferedReader, RandomAccessFile). –