FileDownloader: catch all Exceptions in 'finally' block

Otherwise debugging in cases where 'in' or 'out' are null gets difficult
because then the application will exit with a NullPointerException
thrown from the nested 'try' block inside 'finally' rather than the real
exception that happened before.