| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > гонка try&finally |
| Автор: devmstr 11.9.2008, 09:45 |
| try { return 1; } finally { return 2; } Почему ответ будет 2? |
| Автор: Дрон 11.9.2008, 09:52 |
| devmstr, вы сговорились? Позавчера точно такая же тема была: http://forum.vingrad.ru/forum/topic-227316/kw-try-finaly-return.html |
| Автор: cube 11.9.2008, 10:01 | ||
а че здесь непонятно?) finally выполнится всегда, внезависимости выполнился ли блок try вообще, почитай спецификацию |
| Автор: Platon 11.9.2008, 11:18 |
| cube, пустой аргумент. |
| Автор: cube 12.9.2008, 11:09 | ||
что значит пустой аргумент? читай http://java.sun.com/docs/books/jls/second_edition/html/exceptions.doc.html http://java.sun.com/docs/books/jls/second_edition/html/statements.doc.html#236653 http://java.sun.com/docs/books/jls/second_edition/html/exceptions.doc.html |
| Автор: Дрон 12.9.2008, 12:00 | ||||
Я ещё раз говорю -- тема только что обсуждалась и там сначала я предположил, а потом w1nd дал отличный ответ, как оно работает:
Таким образом первый return записывает в некоторую внутреннюю переменную значение 1, потом выполняется блок finally, который перезаписывает эту переменную значением 2. |
| Автор: powerOn 12.9.2008, 12:35 |
| Модератор: Закрыл тему ибо уже было. |