Много раз я встречался с утверждением, что приложение должно всегда явно закрывать все ресурсы, которые он открыл.
Мой подход к программированию довольно прагматичен, и я не люблю слепо следовать любому соглашению, которое я явно не вижу в преимуществах. Отсюда мой вопрос.
Предположим, что:
- У меня небольшое приложение
- Он открывает несколько ресурсов (например, файлы, подключения к базе данных, удаленные потоки) и обрабатывает их
- Он работает несколько минут, а затем выходит
- Скажем, это на Java (если язык имеет значение)
Мне действительно нужно заботиться о закрытии всех ресурсов, которые я открыл? Я думаю, все ресурсы, которые я открыл, будут закрыты/выпущены, когда приложение/виртуальная машина выйдет. Я прав?
Если это так, есть ли убедительные причины заботиться о закрытии ресурсов в таком маленьком, коротком рабочем приложении?
ОБНОВИТЬ:
Вопрос сугубо гипотетический, но аргумент не заботиться об этом заключается в том, что я могу просто взломать какой-то быстрый скрипт и не хочу писать лишний код, не связанный напрямую с проблемой: закрытие ресурсов, выполнение всего этого подробный материал try-catch-finally, обработка исключений, которые мне не нужны и т.д.
Вопрос заключается в том, есть ли какие-либо практические последствия, если вы этого не сделаете.