1 and 2) yes, you can do both of them by inserting try blocks or by allowing an exception (depending on the situation).
3) this is not a bad practice, it is inevitable
There are a few things to watch out for.
- . catch finally, . - Closeable, InputStream JDBC, finally, , , , .
, , , , finally, , , . JDBC, , , , -, . , , finally , .
try-with-resources - . finally , try , , Throwable#getSuppressed.
try-with-resources try-finally, , , -.
try-with-resources , , , try , . , , .