У меня есть параллельный вопрос.Доступ к стеку потоков ZOmbie в java?
Давайте предположим следующий метод, который работает потоком (A).
void run(){
//some work
FileInputStream fis=new FileInputStream(new File("/home/share/_config"));
//some work with fis
}
и предположит, есть ошибка, которая не является catchable, так как я получил от Java многопоточности, мы можем добавить неперехваченный менеджер исключений с setUncaughtExceptionHandler()
методом, поэтому вопрос, как бы я получить доступ к файлу, я открыл (fis
) из стека убитой нити и закрыть его от обработчика?
Если вы используете предложение 'finally', чтобы закрыть свой' FileInputStream', здесь проблем нет. Существует также новый синтаксис в Java 7, который позволяет указывать вещи, которые необходимо закрыть в круглых скобках, в предложении 'try' –
Обратите внимание, что' FileInputStream' объявляется как выбрасывающее исключение. –
Либо ваш код хорошо написан и хорошо очищает ресурсы, либо беспорядок, и вы не можете его исправить. Притворство беспорядка можно убрать по краям, что ухудшает ситуацию хуже ИМХО. –