|
|
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Добрый день. JAVA я начал осваивать недавно, поэтому многие вещи в ней мне кажутся, мягко говоря, странными. Например. У меня есть некий метод, в котором я сначала создаю некий файл, потом что-то с ним делаю, в самом конце мне его нужно удалить. Без особых сомнений пришу следующий код: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. На что компилятор (видимо, резонно) возражает мне - "переменная WorkFile может быть не определена". Я даже, где-то с ним согласен. В другом языке я написал бы что-то вроде if valid-handle(WorkFile) или if WorkFile != null, и был бы счастлив. Но тут, если я все правильно понимаю, ничего из этого мне не поможет. Получается, что в finally нельзя использовать никакие переменные, которые были инициализированы в разделе try этой же процедуры. Собственно, вопрос - а что вообще можно использовать в секции finally? И как правильно следует решать задачи подобные приведенной? ЗЫ. Написать в finally TempFile = new File (Name) не предлагайте, это тривиально и мало где подойдет. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:18:31 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:22:16 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerus, почитайте про области видимости переменных, try и finally тут ни при чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:26:31 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
ТимоН, Увы, так тоже не работает. Та же ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:30:09 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Скорее не про видимость переменных, так как с этим тут все в порядке, а с выделением памяти в Java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:31:12 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
javapecker, Что не так с видимостью? С видимостью все хорошо. Переменная WorkFile, безусловно, видна внутри finally. Но вот с ее инициализацией, действительно, могу быть проблемы. Кстати, при неверно понятой области видимости, ошибка была бы другая: "символ не найден". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:32:06 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerus, прощу прощения, невнимательно посмотрел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:33:09 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusУвы, так тоже не работает. Та же ошибка. не может быть, проверьте еще раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:37:47 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
ТимоН, Тем не менее: CopyPictureCatalog.java:157: variable WorkFile might not have been initialized if (WorkFile != null) { ^ 1 error ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:41:13 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerus, не может быть, сам только что проверил ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:45:12 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusТимоН, Тем не менее: CopyPictureCatalog.java:157: variable WorkFile might not have been initialized if (WorkFile != null) { ^ 1 error Присвоить значение переменной не забыли? Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:48:24 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Добрый день, stepplerus! > Автор: stepplerus. ТимоН, > > Тем не менее: Точно в третьей строке написано Код: sql как было, Код: sql -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:48:58 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Тем не менее, javapeckertry и finally тут ни при чем. В джаве просто запрещено использование неинициализированных локальных переменных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:51:24 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
javapecker, Вот, простой пример: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. У меня ошибка воспроизводится. Моя ЯВА так устарела? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:51:34 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
GKS_SamaraДобрый день, stepplerus! > Автор: stepplerus. ТимоН, > > Тем не менее: Точно в третьей строке написано Код: sql как было, Код: sql Воооот!!! Спасибо. -- Алексей JID: alxt@ya.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:52:12 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerus, не устарела, вы просто еще невнимательнее чем я) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:53:15 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Ну во-первых в java принято называть переменные с маленькой буквы File workFile = .. Так легче визуально отличить вызов статических методов от нестатических. Далее, если ваша задача конкретно поработать с файлом потом удалить его, то лучше делать такЖ Код: java 1. 2. 3. 4. Третье, вариант Тимона должен работать, вы его хоть пытались запустить? Четвертое, вам действительно надо разобраться с моментом выделения памяти под объекты. В java обьявление переменной это всего лишь обьявление, память при этом не выделяется, особым случаем является присваивание ссылке значения null. Компилятор вам всем правильно говорит. Классическая идиома такая: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 14:54:29 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusjavapecker, Вот, простой пример: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. У меня ошибка воспроизводится. Моя ЯВА так устарела?чоза тупняк-то вконце концов Код: plaintext 1. 2. 3. 4. 5. 6. что тут странного-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 15:01:49 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
grasoff.net, Да, в общем, уже все хорошо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 15:14:09 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Не, странная эта штука - Java. С одной строны, есть метод renameTo(), который переименовывает даже между различными устройствами (чего ни одна ОС не делает). То есть, сначала этот метод честно копирует в целевой файл, а потом удаляет исходный файл, походу теряя атомарность операции rename. А с другой стороны, нет метода copyTo(), который надо делать самому. Вот, кто бы объяснил, почему? "И так у них все" (С) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 17:02:36 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusА с другой стороны, нет метода copyTo()Если кровь-из-носу надо, чтобы было в rt.jar - Java SE 7 . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 17:14:15 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Добрый день, stepplerus! > Вот, кто бы объяснил, почему? Авторы Явы были очень плохими архитекторами. Что можно- поправили, что нет- осталось криво. Но хорошо то, что есть кому предлагать хорошие идеи и их слушают. Тем и хороша. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 17:41:36 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusНе, странная эта штука - Java. С одной строны, есть метод renameTo(), который переименовывает даже между различными устройствами (чего ни одна ОС не делает). То есть, сначала этот метод честно копирует в целевой файл, а потом удаляет исходный файл, походу теряя атомарность операции rename. А с другой стороны, нет метода copyTo(), который надо делать самому. Вот, кто бы объяснил, почему? "И так у них все" (С) потому что жаба изначально предполагалась кроссплатформенным средством. Оно может запускаться там где файловой системы вообще нет (банковские карты, телефоны), там где к файлам нет никакого доступа (вебстарт, апплеты), там где с файлами работают совершенно иначе (под досом и виндовс ранними, например, у файлов нет владельца). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 18:04:30 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Вот понять бы еще, как со всей этой фигней ява стала промышленным стандартом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 18:15:47 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
[quot 1024]stepplerusНе, странная эта штука - Java. потому что жаба изначально предполагалась кроссплатформенным средством. Оно может запускаться там где файловой системы вообще нет (банковские карты, телефоны), там где к файлам нет никакого доступа (вебстарт, апплеты), там где с файлами работают совершенно иначе (под досом и виндовс ранними, например, у файлов нет владельца). Кстати, про владельцев. 1. Отбираю (в XP) у себя права на каталог, и File.listFiles() возвращает null, в то время как а я жду Exception. Ладно, оставим так. 2. Отбираю (в XP) у себя права на файл, все становится еще интреснее. Внутри одного устройства файл (неожиданно) переносится благополучно, сохраняя при этом все свои "запретительные" атрибуты. На другое устройство файл уже не переносится (ожидаемо), но при этом так же не происходит Exception, просто метод переноса возвращает false вместо true. Я что-то пропускаю в списке throw? Хотелось бы видеть, что именно происходит, а не просто "не шмогла". Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 18:23:25 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
[quot stepplerus]1024пропущено... Кстати, про владельцев. 1. Отбираю (в XP) у себя права на каталог, и File.listFiles() возвращает null, в то время как а я жду Exception. Ладно, оставим так. 2. Отбираю (в XP) у себя права на файл, все становится еще интреснее. Внутри одного устройства файл (неожиданно) переносится благополучно, сохраняя при этом все свои "запретительные" атрибуты. На другое устройство файл уже не переносится (ожидаемо), но при этом так же не происходит Exception, просто метод переноса возвращает false вместо true. Я что-то пропускаю в списке throw? Хотелось бы видеть, что именно происходит, а не просто "не шмогла". Спасибо. надо взять и прочитать в документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 18:25:27 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerus2. Отбираю (в XP) у себя права на файл, все становится еще интреснее. Внутри одного устройства файл (неожиданно) переносится благополучно"Неожиданно" потому, что вы плохо знаете систему прав Windows NT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 18:25:56 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
[quot 1024]stepplerusпропущено... надо взять и прочитать в документации. Я как раз ее и читаю. На www.java.sun.com. Но там как-то очень скупо про все написано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 18:32:10 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovstepplerus2. Отбираю (в XP) у себя права на файл, все становится еще интреснее. Внутри одного устройства файл (неожиданно) переносится благополучно"Неожиданно" потому, что вы плохо знаете систему прав Windows NT. Ну, да. Я простой человек, поэтому ожидаю, что если я отобрал все права, то не должен мочь ничего. А получается не так. Перенести файл - можно. А вот открыть его в какой-то программе - уже нет (и скопировать - тоже нет). Почему? ЗЫ. Это риторические вопросы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 18:39:10 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
[quot 1024]stepplerusпропущено... надо взять и прочитать в документации. Да. И отказаться от класса File из io. Так я понимаю текущую ситуацию. Для игрушек он был написан, а не для работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 18:47:13 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
[quot stepplerus]1024пропущено... Да. И отказаться от класса File из io. Так я понимаю текущую ситуацию. Для игрушек он был написан, а не для работы. уговаривайте меня! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 18:51:53 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
[quot 1024]stepplerusпропущено... уговаривайте меня! Ага. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2012, 19:10:34 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
дверь открыта в обе стороны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2012, 11:27:18 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusBasil A. Sidorovпропущено... "Неожиданно" потому, что вы плохо знаете систему прав Windows NT. Ну, да. Я простой человек, поэтому ожидаю, что если я отобрал все права, то не должен мочь ничего. А получается не так. Перенести файл - можно. А вот открыть его в какой-то программе - уже нет (и скопировать - тоже нет). Почему? ЗЫ. Это риторические вопросы. Да. И отказаться от класса File из io. Так я понимаю текущую ситуацию. Для игрушек он был написан, а не для работы. Поздравляю, вы первый кто написал вирус на java. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2012, 13:19:20 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
1024дверь открыта в обе стороны Хамить - это обязательно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2012, 13:57:36 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusХамить - это обязательно?А вы никогда не видели дверей в магазинах и тамбурах? Они действительно открываются в обе стороны. Кроме того, вам, пока, не хамят. А вот ваш апломб - несколько раздражает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2012, 14:06:56 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerus, 1) В Java 7 есть try-with-resource http://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html Ресурс, конечно, придется создать свой. Но фича как раз создана для того чтобы решить вашу проблему. 2) В Java принятно именовать переменные с маленькой буквы. 3) Обратите внимание что File.delete() возвращает boolean. Хорошим стилем было бы это значение проверить. Т.к. исключения этот метод обычно не выкидывает. 4) В Java 7 так же много чего интересного в работе с файлами http://docs.oracle.com/javase/tutorial/essential/io/fileio.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2012, 14:12:01 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovstepplerusХамить - это обязательно?А вы никогда не видели дверей в магазинах и тамбурах? Они действительно открываются в обе стороны. Кроме того, вам, пока, не хамят. А вот ваш апломб - несколько раздражает. Могу себе позволить. Опыт программирования у меня, прямо скажем, не маленький. На самых разных системах. Но не на JAVA. А то, что я вижу в JAVA, меня, мягко говоря, удивляет. Как, например, нижеописаная ситуация - "метод delete() возвращает boolean, и исключения редко выкидывает". Как такое может быть вообще? Я не могу удалить файл, и НИКАК не могу узнать - почему? Так же непонятен двойственный подход - метод и результат возвращает и исключение может выкинуть, а может и не выкинуть. Тогда только результат - истина или ложь. Если уж писать систему на исключениях, то в ней ВСЕ ошибки должны быть на исключениях, а все методы, которые возвращают не объекты, должны быть void. Если писать систему без исключений, то подобные методы должны возвращать хотя бы int, в котором будет код ошибки (для разных случаев - разный). При таком подходе прикладной код тоже получается простой и понятный. В одном случае - на исключениях, в другом - на проверках результата вызова функций. Оба этих подхода я вполне успешно использовал и использую до сих пор. А с JAVA получается, как в том анекдоте - "тут играть, тут не играть, тут рыбу заворачивали, не черкайте, это не ваши ноты". Я не утверждаю, что с этим совсем нельзя жить. Можно, конечно. Мир, вообще, не совершенен. Но сдержать свое удивление по этому поводу я пока не могу. Наверное привыкну, но, со временем, не сразу. Привык же, например, к языку, где перевести буквы в строчные это lc(), а в прописные - caps(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 09:34:15 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
0FDПоздравляю, вы первый кто написал вирус на java. Не, FAR так же работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 09:35:13 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Спасибо, посмотрю. Про Path я уже читал, но так и не понял, что это. Видимо, не добрался еще до начала объяснения. Особенно порадовали примеры: Path source = ... Path target = ... Files.copy(source, target, ...); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 09:38:59 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerus, ваши доводы на первый взгляд логичны. Но, реализовать именно Кроссплатформенно API-работу с файлами в кавычках - не так просто. Как все случаи жизни подвести под один API и ещё вдобавок вывести подробности "не смогла" по каждой?. Хотя на самом деле, говорят, что кроссплатформенность - это "игрушки" ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 10:07:14 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Petro123, Ну, я, как раз, сейчас сижу на кроссплатформенной системе. В ней, для файловых операций, возвращается код ошибки ОС. Для виндов и юникса они разные, хотя, частью и совпадают. Так как я знаю, на какой ОС произошла ошибка, расшифровать ее труда не составляет (большого). Хотя, для части файловых операций никаких ошибок не возвращается, и даже исключений перехватить нельзя. Так что, да, похоже, что проблемы общие. Разочаровывает меня JAVA. От системы, которая была написана уже после того, как большинство шишек уже было набито, я ждал большей стройности. А пока это все больше похоже на нагромождение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 10:21:01 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusРазочаровывает меня JAVA. От системы, которая была написана уже после того, как большинство шишек уже было набито, я ждал большей стройности. А пока это все больше похоже на нагромождение. а что? Большой выбор альтернатив? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 10:34:28 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Добрый день, stepplerus! > А то, что я вижу в JAVA, меня, мягко говоря, удивляет. В java некоторые вещи были сделаны изначально плохо. В частности- работа с файлами. Поэтому есть NIO в JDK1.4 и NIO2 в JDK7. Если есть возможность- используй NOI2 и забудь остальное, как страшный сон. > А с JAVA получается, как в том анекдоте - "тут играть, тут не играть, > тут рыбу заворачивали, не черкайте, это не ваши ноты". Я не утверждаю, > что с этим совсем нельзя жить. Можно, конечно. Мир, вообще, не > совершенен. Но сдержать свое удивление по этому поводу я пока не могу. Мир несовершенен. Правильно сделанные ЯП оказываются громоздкими и без поддержки сообщества (Algol68, Ada, Eiifel), используются нишево. Приходится жить в кривых поделиях, рождённых случайно и без продумывания, и доделанных общими усилиями до состояния "что смогли, то поправили, остальное уж как есть" (C, C++, java, php и т.п.). -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 10:38:07 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Petro123stepplerusРазочаровывает меня JAVA. От системы, которая была написана уже после того, как большинство шишек уже было набито, я ждал большей стройности. А пока это все больше похоже на нагромождение. а что? Большой выбор альтернатив? Ну, как говорят англичане: "из двух зол и выбирать не стоит". Интересно было бы узнать, что помешало сделать хорошие библиотеки на Cи. В которые положить, в том числе, и кроссплатформенность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 10:40:19 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
GKS_SamaraМир несовершенен. +1 ))) Добавлю, что иногда даже легче жить, зная что ОН несовершенен)) авторИнтересно было бы узнать, что помешало сделать хорошие библиотеки на Cи. На Си своих тараканов полно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 10:55:05 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusМогу себе позволить. Опыт программирования у меня, прямо скажем, не маленький. На самых разных системах.И что? "Да у меня тридцать лет армейского стажа!" (ц) "Две сорванные башни"Но не на JAVA.Ну так и не суйтесь со своим уставом в чужой монастырь.А то, что я вижу в JAVA, меня, мягко говоря, удивляет. Как, например, нижеописаная ситуация - "метод delete() возвращает boolean, и исключения редко выкидывает". Как такое может быть вообще?Смотрим доку (Java SE 6) Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Видим, что исключение кидается тогда, когда программа работает под диспетчером безопасности.Я не могу удалить файл, и НИКАК не могу узнать - почему?Да, не можете. По той простой причине, что никто не собирается создавать стопитцот унифицированных кодов ошибок и отображать их на всевозможные системные.Так же непонятен двойственный подходЭто потому, что вы не взяли труд почитать документацию. И подумать.Если уж писать систему на исключениях, то в ней ВСЕ ошибки должны быть на исключениях, а все методы, которые возвращают не объекты, должны быть void.А вот это - бред. Исключение - исключительная ситуация. А исключительным является только то, что не может быть решено в данном контектсе . Не больше и не меньше.При таком подходе прикладной код тоже получается простой и понятный.Прикладной код не может быть проще задачи. Всё, что может сделать программист - сосредоточить сложные вещи внутри "простых". Но даже такой подход работает, пока вам не требуется отладка. Потребовалась - придётся нырять в потроха. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 11:28:19 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovПо той простой причине, что никто не собирается создавать стопитцот унифицированных кодов ошибок и отображать их на всевозможные системные. я с тобой согласен. Но _в прикладном_ коде нужно знать о причине "не могу". Т.к. нужно принимать решение. Но, и с тем, что для всех осей писать коды ошибок - тоже некузяво. Согласен. ЗЫ. Как сказали на форуме Игрушек программисты: "кроссплатформенность, это обман". Всё равно в коде сложной системы - куча if \ else и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 11:57:39 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, 1. JAVA - не монастырь, JAVA - инструмент. Нельзя предъявлять претензии к инструменту? С каких это пор? 2. Я покручу SecurityManager. 3. В операционных системах дают себе труд создать и описать стопитсот ошибок. Не вижу никаких причин не сделать это в JAVA. Кроме как "нам это сдавать ко второму явнваря, а еще код не весь проверен". 4. Есть разные исключения. В том числе - проверяемые. Код, основанный на одном подходе - проще и понятнее. Например, в каком-то другом случае, я буду думать, что получу ошибку в виде возвращаемого результата метода, а у меня случится исключение, которое я не предусмотрел. Понятно, что прочитав доку и проведя стопитсот тестов, я решу эту проблему. Но нафига такой гемморой? Что бы не скучно было? Почему не сделать все одинаково? 5. Не должен я "нырять в потроха". Вынужден, да. Но не должен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 12:09:01 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Petro123Но _в прикладном_ коде нужно знать о причине "не могу". Т.к. нужно принимать решение.Одно с другим не связано. Вообще. Несколько примеров: 1. Винда не позволяет удалить файл, открытый другим процессом. Ошибка - нет доступа. Ровно такая же, как и при "реальной" нехватке прав. Ошибка одна, а решения - разные. А в хрюниксах эта ошибка вообще не возникает. 2. В хрюниксах файловые системы - регистрочувствительные, а виндах - регистро не чувствительные. Но - сохраняющие регистр. Тоже может быть источником проблем. 3. Есть, например, XADisk - там добавляются свои ошибки, о которых рантайм в принципе не может знать. Те, кому действительно могут взять Java SE 7 и реализовать такое файловое хранилище, которое их душе угодно. P.S. Задача прикладного программиста - реализовать (свою часть) проект(а) в рамках существующего бюджета и ограничений. А не хныкаться, что стиль кода функции не той системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 12:11:55 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovА не хныкаться, что стиль кода функции не той системы. Сначала есть момент выбора - на чем реализовывать. Мне, например, говорят, "Ваша бла-бла-бла - не промышленная система, а вот JAVA - промышленная, поэтому все надо делать на JAVA". Можете считать, что я узнаю степень ее "промышленности". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 12:22:33 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerus1. JAVA - не монастырь, JAVA - инструмент. Нельзя предъявлять претензии к инструменту? С каких это пор?"Знай, что хаешь" (ц) dz. Сказано было про OS/2, но актуально до сих пор.2. Я покручу SecurityManager."В некоторых случаях не помогает и чтение газет". Диспетчер безопасности - совершенно отдельная категория исключений. Прикладная, а не системная.3. В операционных системах дают себе труд создать и описать стопитсот ошибок. Не вижу никаких причин не сделать это в JAVA. Кроме как "нам это сдавать ко второму явнваря, а еще код не весь проверен".Покажите мне этих титанов. Которые свели воедино список ошибок винды, полуоси, солярок, фрей и разномастных линуксов. На железках от сотовых до персоналок. Родина должна знать своих героев. Миникомпьютеры, мэйнфрэймы и их операционки, так и быть, добавлять не станем.Почему не сделать все одинаково?"Делай настолько просто, насколько это возможно, но не проще".5. Не должен я "нырять в потроха". Вынужден, да. Но не должен.Ну тогда - спасибо, я уже насмотрелся на результаты такого профессионализма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 12:23:33 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusСначала есть момент выбора - на чем реализовывать.Это задача архитектора проекта. В нормальной ситуации учитывают, что короткий путь - известный путь.Можете считать, что я узнаю степень ее "промышленности".Пока демонстрируете, что "узкий специалист подобен флюсу, ибо полнота его односторонняя". Не надо начинать ответственный проект "на чужом поле". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 12:28:22 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, И где та оспополам? А DZ (если это тот, кого я знал), тот еще охальник. Я почитаю про SecurityManager подробно. Не надо сводить вместе ошибки разных операционных систем. Достаточно вернуть то, что возвращает операционная система. Я, лично, ни в DOS, ни в UNIX (разных), ни в WINDOWS, ни в Novell не имел проблем с получением кода ошибки от файловой системы. Ни на одном средстве разработки. Пока с JAVA не познакомился. Вот майнфреймах я только математическими вычислениями занимался, ничего не могу сказать про их файловые системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 12:30:35 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Гм. Почему не предполжить, что я и есть архитектор? А поле, дело такое, не всегда его можно взять с собой. И на каждом растет все, что нужно. "Промышленность" - это, в том числе, и беспроблемность. Типа, "сел и поехал". Без доработки напильником. А если нужен напильник, то это уже, скорее, "на коленке сделанная". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 12:34:17 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusИ где та оспополам?Где бы она ни была - JRE/JDK для неё существуют. До 1.3.1 - IBM, 1.4 - GoldenCode, далее - "одинизация".А DZ (если это тот, кого я знал), тот еще охальник.Возможно, но мысль его - абсолютно здравая, а формулировка - чёткая.Я почитаю про SecurityManager подробно.Вот задлянафига? Апплет пишите? Или заказчик потребовал, чтобы приложение было "поражено в правах"?Не надо сводить вместе ошибки разных операционных систем. Достаточно вернуть то, что возвращает операционная система.Мопвашуять ... Вот работает у нас две системы одного разработчика. Одна под виндой, другая под линуксом. Ту, которая работает под виндой можно взять и запустить под линуксом. Единственное изменение - стартовые скрипты. А с вашим подходом ещё и коды ошибок станут другие. Внезапно. Нафига такое счастье, особенно с учётом того, что на момент возникновения ошибки никто и ничего оперативно исправить не может. Ни приложение, ни даже администратор. Я, лично, ни в DOS, ни в UNIX (разных), ни в WINDOWS, ни в Novell не имел проблем с получением кода ошибки от файловой системы. Ни на одном средстве разработки."Проблема не в том, что человек смертен, а в том, что иногда он внезапно смертен".Пока с JAVA не познакомился.Это и в ява не проблема. Но возврат boolean вместо int - это фича, а не бага. Вполне разумное решение.Вот майнфреймах я только математическими вычислениями занимался, ничего не могу сказать про их файловые системы.Там и файловых систем может не быть. Зато может быть эмуляция ленты или диска. Или скажем "родная" файловая система OS/400 - отличается от posix-like. Хотя и умеет их эмулировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 12:48:00 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerus"Промышленность" - это, в том числе, и беспроблемность.Это иллюзия.Типа, "сел и поехал". Без доработки напильником.А это - мракетинг. Тоже иллюзия, но хуже.А если нужен напильник, то это уже, скорее, "на коленке сделанная".Напильник нужен всегда. Важно (без нужды) не точить то, что уже выпилено. Программирование, в этом отношении, уникально - только здесь можно изготовить переходник с болта М9 на гайку М6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 12:51:54 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
эх, а хорошо бы что нибудь такого промышленного)) Код: java 1. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 13:11:31 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Petro123эх, а хорошо бы что нибудь такого промышленного)) Код: java 1. Стек-трейсы рабочей системы давно смотрели? Работает, что характерно, без участия программиста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 13:16:02 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovМопвашуять ... Вот работает у нас две системы одного разработчика. Одна под виндой, другая под линуксом. Ту, которая работает под виндой можно взять и запустить под линуксом. Единственное изменение - стартовые скрипты. А с вашим подходом ещё и коды ошибок станут другие. Внезапно. Нафига такое счастье, особенно с учётом того, что на момент возникновения ошибки никто и ничего оперативно исправить не может. Ни приложение, ни даже администратор. Это будет уже моей проблемой, правда? И как ее решать я знаю, уж поверьте. Кстати, в исключениях цифр обычно нету, все больше слова. И что будет написано "no accesss" или "access denied", по большому счету без разницы. Так как, скорее всего, прямо сейчас, проблему, действительно, никто решать не будет. Потом, в логи глянут, и примут какое-нибудь решение, на основе слов, которые там написано. Не знаю, что можно будет сделать, увидев в логе "false". Может, Вы знаете? Подскажите? А SecurityManager я, все-таки почитаю, уж, извините. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 13:18:28 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, прикладной прикладному - рознь. У той, что выше, прикладной код и его ошибку надо дать СРАЗУ пользователю или девочке рядом из техподдержки. А файл на шаре заблокирован с другой проги на соседнем этаже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 13:19:00 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovstepplerus"Промышленность" - это, в том числе, и беспроблемность.Это иллюзия.Типа, "сел и поехал". Без доработки напильником.А это - мракетинг. Тоже иллюзия, но хуже.А если нужен напильник, то это уже, скорее, "на коленке сделанная".Напильник нужен всегда. Важно (без нужды) не точить то, что уже выпилено. Программирование, в этом отношении, уникально - только здесь можно изготовить переходник с болта М9 на гайку М6. Ну, не знаю. Вот у меня тойота была три года. Все что делал - заливал бензин и жидкость в бачок омывателя. На ТО ездил. Со мной что-то не так? Надо было на яму ее закатывать, отвинчивать - привинчивать что-нибудь? Или телевизор, например. Купил, воткнул проводка, нажал "автонастройка". Смотри и радуйся. Или стиральная машина. Или холодильник. Скажете, что они проще? Нет, нифига не проще. Просто они промышленно сделаны, а не на коленке. Вот и вся разница. А переходники и из железа есть. Сходите на рынок, убедитесь сами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 13:24:57 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusЭто будет уже моей проблемой, правда?Нет. Я вспомнил про стек-трейсы рабочей системы. System-specific ошибки там есть. P.S. А проблему будет решать системный администратор :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 13:25:28 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, вот и выходит, что есть СЕРВЕРНАЯ система, где ошибки на уровне оси заранее исключаются (выводятся в логи). Java как раз для таких)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 13:32:39 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Petro123У той, что выше, прикладной код и его ошибку надо дать СРАЗУ пользователю или девочке рядом из техподдержки. А файл на шаре заблокирован с другой проги на соседнем этаже.Зная уровень техподдержки, могу обоснованно утверждать, что "не могу удалить файл" и "Отказано в доступе" для них совершенно эквивалентны. Поэтому в данном конкретном случае (удаление файла) возврат true/false - вполне обоснован. Если возникнет ошибка ввода/вывода, будет выброшено java.io.IOException и там, среди прочего, будет и "нативная причина". P.S. Если кто-то думает, что типичная техподдержка умеет/хочет читать стек-трейсы - он сильно ошибается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 13:33:05 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Petro123вот и выходит, что есть СЕРВЕРНАЯ система, где ошибки на уровне оси заранее исключаются (выводятся в логи)."Шматрица": Код: sql 1. 2. "Наш" клиент - выдаёт исключение пользователю. А сервер приложений - пишет в лог. Так-шта-а - как закажете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 13:38:25 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЕсли возникнет ошибка ввода/вывода, будет выброшено java.io.IOException и там, среди прочего, будет и "нативная причина".File.delete() не бросает IOException. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 14:05:35 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovstepplerusЭто будет уже моей проблемой, правда?Нет. Я вспомнил про стек-трейсы рабочей системы. System-specific ошибки там есть. P.S. А проблему будет решать системный администратор :) Есть еще какие-то стек-трейсы, кроме Exception exc.prrintStackTrace()? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 14:29:56 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
svenomFile.delete() не бросает IOException.Я в курсе. Можно спорить насколько "архитектурно правильно" размещать delete в jav.io.File, но я бы хотел увидеть код, который может исправить ошибку удаления файла, располагая кодом системной ошибки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 15:38:55 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusА переходники и из железа есть.С болта М9 на гайку М6? А ведь исходный пример - гораздо гораздее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 15:41:19 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovsvenomFile.delete() не бросает IOException.Я в курсе. Можно спорить насколько "архитектурно правильно" размещать delete в jav.io.File, но я бы хотел увидеть код, который может исправить ошибку удаления файла, располагая кодом системной ошибки.Ну а что вы можете исправить? Есть ограниченное количество "исправимых" ошибок - "директория не пуста", "файл не существует". Тут можно придумать какой-нибудь workaround. Ну плюс, если прав не хватает - можно попробовать из Java выставить себе write-привилегию. Итого - 3 потенциально иcправимые ситуации, все соответствующие методы уже есть в java.io.File. Нафига нам нужен зоопарк платформозависимых кодов (количество которых исчисляется десятками) - непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 15:45:57 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
svenomНафига нам нужен зоопарк платформозависимых кодов (количество которых исчисляется десятками) - непонятно.Ну, некоторые - хотят. Более того, считают свою хотелку не просто оправданной, но и трювэй. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 15:48:36 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovsvenomНафига нам нужен зоопарк платформозависимых кодов (количество которых исчисляется десятками) - непонятно.Ну, некоторые - хотят. Более того, считают свою хотелку не просто оправданной, но и трювэй.Ну в этом то и вопрос - зачем они это хотят? Смысл Java в том то и заключается, что бы абстрагироваться от платформы. Какая этим упертым трювей-программистам разница, запишут ли они: Код: java 1. 2. 3. 4. 5. или Код: java 1. 2. 3. 4. 5. 6. Да никакой. Это заморочки-из-бочки на пустом месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 15:56:46 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
платформозависимость внутри, а снаружи выдать максимум информации. Например, Canvas \ HDC скрывает всё внутри. А если внизу внутри разных 2-оси, то извольте максимум инфы по ним. А не среднее по госпитплю - НЕ ВЫШЛО ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 15:58:00 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
svenomЭто заморочки-из-бочки на пустом месте.Ну вот человек привык анализировать код и на основании анализа - принимать решения. Анализировать ситуацию и принимать решения - он пока(?) не додумался. Но Пастернака уже осуждает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 15:59:20 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
svenomДа никакой. Это заморочки-из-бочки на пустом месте. революция? Код ошибки не нужен - заменим HTTP_ERROR 400 на имя функции? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:00:04 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Вот вы развели демагогию http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#delete%28java.nio.file.Path%29 Throws: NoSuchFileException - if the file does not exist (optional specific exception) DirectoryNotEmptyException - if the file is a directory and could not otherwise be deleted because the directory is not empty (optional specific exception) IOException - if an I/O error occurs SecurityException - In the case of the default provider, and a security manager is installed, the SecurityManager.checkDelete(String) method is invoked to check delete access to the file вот исключения которых так хотел stepplerus, даже IOException на случай других ошибок из операционки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:01:40 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Petro123А если внизу внутри разных 2-оси, то извольте максимум инфы по ним. А не среднее по госпитплю - НЕ ВЫШЛО )))Вот только не надо с delete() на Graphics перепрыгивать. Плюс, насколько я понимаю, из Graphics можно получить Graphics2D и проанализировать много чего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:02:50 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, пришёл лесник и всех разогнал )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:03:27 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Blazkowiczвот исключения которых так хотел stepplerus, даже IOException на случай других ошибок из операционки.Ну так в семерке библиотека ввода-вывода существенно перепахана. Даже open() появился :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:05:42 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovstepplerusА переходники и из железа есть.С болта М9 на гайку М6? А ведь исходный пример - гораздо гораздее. Я, как инженер механик, не могу придумать, зачем нужен такой переходник. Оторвет ведь, гайку-то с такого болта. А вот двойные болты видел, где к более прочной части что-то тяжелое прикручивают, а к более тонкой - что-нибудь полегче. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:15:02 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovsvenomFile.delete() не бросает IOException.Я в курсе. Можно спорить насколько "архитектурно правильно" размещать delete в jav.io.File, но я бы хотел увидеть код, который может исправить ошибку удаления файла, располагая кодом системной ошибки. Странные вы ребята, пытаетесь убедить неизвестно кого неизвестно в чем. Например, для delete(), в случае ошибки "файл не найден" я решу, что и так хорошо. А при других ошибках остановлю обработку, пока диск не переполнился. Другое дело, что "файл не найден" может быть и из-за того, что устройство отвалилось, но, в этом случае следующий create() не выполнится. Тоже, кстати, интересно, что он расскажет о невозможности своего выполнения... Речь же не только о несчастном delete(). Файловых операций много. Например, посмотрим на FileReaded. Он, по идее, должен создать исключение, если указанного файла не существует, правильно? Теперь вопрос - этот класс/метод чем-то принципиально отличается от File.delete()? Чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:37:46 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
svenomBasil A. Sidorovпропущено... Ну, некоторые - хотят. Более того, считают свою хотелку не просто оправданной, но и трювэй.Ну в этом то и вопрос - зачем они это хотят? Смысл Java в том то и заключается, что бы абстрагироваться от платформы. Какая этим упертым трювей-программистам разница, запишут ли они: Код: java 1. 2. 3. 4. 5. или Код: java 1. 2. 3. 4. 5. 6. Да никакой. Это заморочки-из-бочки на пустом месте. Смишно. И Вы уверены, что между canWrite() и write() ничего никогда не успеет произойти? Таки у меня для Вас плохие новости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:40:52 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusНапример, для delete(), в случае ошибки "файл не найден" я решу, что и так хорошо. А при других ошибках остановлю обработку, пока диск не переполнился. Другое дело, что "файл не найден" может быть и из-за того, что устройство отвалилось, но, в этом случае следующий create() не выполнится. Тоже, кстати, интересно, что он расскажет о невозможности своего выполнения...Могу только повторить - "Знай, что хаешь". А пока - просто: "Забудь всё, чему тебя учили в институте". И читайте доки - они рулез. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:41:52 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusЯ, как инженер механикТ.е. сарказм ситуации до вас по прежнему не доходит? Плохо вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:42:54 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusBasil A. Sidorovпропущено... Я в курсе. Можно спорить насколько "архитектурно правильно" размещать delete в jav.io.File, но я бы хотел увидеть код, который может исправить ошибку удаления файла, располагая кодом системной ошибки. Странные вы ребята, пытаетесь убедить неизвестно кого неизвестно в чем. Например, для delete(), в случае ошибки "файл не найден" я решу, что и так хорошо. А при других ошибках остановлю обработку, пока диск не переполнился. Другое дело, что "файл не найден" может быть и из-за того, что устройство отвалилось, но, в этом случае следующий create() не выполнится. Тоже, кстати, интересно, что он расскажет о невозможности своего выполнения... ну вот видишь, уже просто узнать что "файл не найден" нельзя. Тебе русским языком говорят - ты не удаляешь файл. Ты вызываешь команду удаления файла. Но т.к. для разных фс команды разные то и ошибки разные. Если тебе нужна платформозависимый способ то File.delete() к нему не относится. Эта функция кроссплатформенная а значит в чём-то урезанная. Проще паренной репы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:43:05 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusСмишно. И Вы уверены, что между canWrite() и write() ничего никогда не успеет произойти? Таки у меня для Вас плохие новости.У меня для вас новости еще хуже - при вашем подходе у нас имеет место быть точно такая же проблема, ибо от момента получения ошибки OS до момент ее обработки с файлом точно так же может произойти все, что угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:44:06 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovstepplerusНапример, для delete(), в случае ошибки "файл не найден" я решу, что и так хорошо. А при других ошибках остановлю обработку, пока диск не переполнился. Другое дело, что "файл не найден" может быть и из-за того, что устройство отвалилось, но, в этом случае следующий create() не выполнится. Тоже, кстати, интересно, что он расскажет о невозможности своего выполнения...Могу только повторить - "Знай, что хаешь". А пока - просто: "Забудь всё, чему тебя учили в институте". И читайте доки - они рулез. Ответ по сравнению delete() и FileWritter не будет, да? Тем более, что в SE7 все сделано именно так, как я и хочу (как тут пишут). Надо будет поставить и посмотреть. И, таки, что теперь? Опять будете выступать адвокатом дьявола? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:45:16 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusСмишно. И Вы уверены, что между canWrite() и write() ничего никогда не успеет произойти? Таки у меня для Вас плохие новости.Не надо быть таким упёртым и самоуверенным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:45:54 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Petro123Blazkowicz, пришёл лесник и всех разогнал )) То есть, я в SE7 буду практически счастлив? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:45:58 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusОтвет по сравнению delete() и FileWritter не будет, да?Цитирование штатной документации - за отдельную плату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:48:16 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
svenomstepplerusСмишно. И Вы уверены, что между canWrite() и write() ничего никогда не успеет произойти? Таки у меня для Вас плохие новости.У меня для вас новости еще хуже - при вашем подходе у нас имеет место быть точно такая же проблема, ибо от момента получения ошибки OS до момент ее обработки с файлом точно так же может произойти все, что угодно. При каком "моем"? Уточните, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:48:46 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovstepplerusОтвет по сравнению delete() и FileWritter не будет, да?Цитирование штатной документации - за отдельную плату. То есть - не будет. Ок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:49:53 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusBasil A. Sidorovпропущено... Цитирование штатной документации - за отдельную плату. То есть - не будет. Ок. уговаривайте меня! тебе ж сказали: чтение документации вслух - 3т.р. за час. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:51:44 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovstepplerusЯ, как инженер механикТ.е. сарказм ситуации до вас по прежнему не доходит? Плохо вам. Мне - хорошо. В последней редакции сделано именно так, как я считаю правильным. Чего же мне должно быть плохо? А железный переходник делается ничуть не сложнее, а то и проще, чем программный. В чем сарказм-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:52:03 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusТо есть - не будет . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:53:27 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerussvenomпропущено... У меня для вас новости еще хуже - при вашем подходе у нас имеет место быть точно такая же проблема, ибо от момента получения ошибки OS до момент ее обработки с файлом точно так же может произойти все, что угодно. При каком "моем"? Уточните, пожалуйста.При гипотетической передаче в JVM кода ошибки OS или при инициации исключения. При любом из этих трех вариантов, в момент обработки ошибки вам никто не даст гарантии, что со времени возникновения ошибки и до момента ее обработки с файлом ничего не произошло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:53:55 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovstepplerusСмишно. И Вы уверены, что между canWrite() и write() ничего никогда не успеет произойти? Таки у меня для Вас плохие новости.Не надо быть таким упёртым и самоуверенным. Это не самоуверенность, это - опыт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:54:12 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusА железный переходник делается ничуть не сложнее, а то и проще, чем программный.С болта М9 на гайку М6???В чем сарказм-то?В мелочах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:54:36 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusЭто не самоуверенность, это - опыт.Я, конечно, мэнфреймы не застал, но уровень своей квалификации знаю хорошо. И, в отличие от вас, прекрасно знаю границы пременимости своих знаний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:58:38 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
svenomstepplerusСмишно. И Вы уверены, что между canWrite() и write() ничего никогда не успеет произойти? Таки у меня для Вас плохие новости.У меня для вас новости еще хуже - при вашем подходе у нас имеет место быть точно такая же проблема, ибо от момента получения ошибки OS до момент ее обработки с файлом точно так же может произойти все, что угодно. То есть, вот авторы новой редакции совсем лохи, да? public static void delete(Path path) throws IOException Чорт, даже void, даже не boolean. "Я знал, я знал" (С) Идите уже, почитайте нормальные книги, как правильно программы писать. Учителя, е-мое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 16:59:16 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusИдите уже, почитайте нормальные книги, как правильно программы писать.Т.е. вы по прежнему не осознаёте, что сравниваете две разные модели? И даже то, что это два разных класса двух разных пакетов - вас совершенно не останавливает? А книжки, да, надо почитать. Вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 17:03:04 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovstepplerusТо есть - не будет . Ну и к чему были все предыдущие выкрутасы? Чего бы сразу не сказать, что с определенной версии все сделано нормально? При том, что часть форумчан именно это сразу и сказало? О чем спор-то был? О том, что если это JAVA, то в ней все всегда хорошо и замечательно что-ли? Или о чем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 17:03:57 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Да. В java отошли от канонов системного программирования на языке Си, когда каждый метод, делающий сайд эффект, должен возращать integer. Точка. Что еще можно обсуждать? Это данность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 17:06:31 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovstepplerusА железный переходник делается ничуть не сложнее, а то и проще, чем программный.С болта М9 на гайку М6???В чем сарказм-то?В мелочах. Гм. Два прохода по цлиндрической заготовке. С одной стороны отверстие и метчик на М9, с другой - плашка на М6. Или еще проще - стачиваем на болте три лишних миллиметра и плашка на М6. картинка про троллейбус из буханки.jpg ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 17:06:34 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusНу и к чему были все предыдущие выкрутасы?Т.е. вы даже не удосужились посмотреть какую именно ссылку я вам предоставил???Чего бы сразу не сказать, что с определенной версии все сделано нормально?С определённой версии "всё" сделано по другому. Вам может быть и нормально, а кому-то - без разницы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 17:06:45 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusГм. Два прохода по цлиндрической заготовке. С одной стороны отверстие и метчик на М9, с другой - плашка на М6. Или еще проще - стачиваем на болте три лишних миллиметра и плашка на М6.До вас по-прежнему не доходит, что программирование - единственная отрасль, где можно изготовить такой переходник не перетачивая ни болт, ни гайку. Такая возможность сама по себе - ни хорошо ни плохо. Плохо считать, что (не)использование такой возможности - единственно верное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 17:10:09 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerussvenomпропущено... У меня для вас новости еще хуже - при вашем подходе у нас имеет место быть точно такая же проблема, ибо от момента получения ошибки OS до момент ее обработки с файлом точно так же может произойти все, что угодно. То есть, вот авторы новой редакции совсем лохи, да? public static void delete(Path path) throws IOException Чорт, даже void, даже не boolean. "Я знал, я знал" (С) Идите уже, почитайте нормальные книги, как правильно программы писать. Учителя, е-мое.Почему же лохи? Просто описанная вами проблема - когда от момента возникновения ошибки до ее обработки что-то может изменить состояние файла - не решаема в рамках JVM, хоть вы boolean возвращайте, хоть код ошибки ОС, хоть бросайте эксепшн. Поэтому с точки зрения прикладного программиста проблема обработки ошибок работы с файлом принципиально будет решаться одинаково хоть в JVM6, хоть в JVM7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 17:14:37 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
svenomstepplerusпропущено... При каком "моем"? Уточните, пожалуйста.При гипотетической передаче в JVM кода ошибки OS или при инициации исключения. При любом из этих трех вариантов, в момент обработки ошибки вам никто не даст гарантии, что со времени возникновения ошибки и до момента ее обработки с файлом ничего не произошло. Ну, коллизия ложного несрабатывания мне известна. Когда все хорошо, но сигнал об этом до получателя дойти не успевает. В долгих интеграционных потоках это, обычно, обрабатывается. А у нас файл благополучно удалился, и что? Тут операционная система отваливается и не успевает ничего рассказать об этом JVM? И JVM считает что произошла ошибка? Так она действительно произошла. И это приведет лишь к тому, что обработка остановится на шаг раньше, чем если бы авария произошла после передачи сигнала об успешном выполнении, так как после аварии на ОС(устройстве) ничего с ним сделать не получится. Или устройство тут же починится? Так для этого таймауты придуманы. Ну а файл удалится, да. А я буду думать, что нет. Так и есть. И что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 17:16:19 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovstepplerusИдите уже, почитайте нормальные книги, как правильно программы писать.Т.е. вы по прежнему не осознаёте, что сравниваете две разные модели? И даже то, что это два разных класса двух разных пакетов - вас совершенно не останавливает? А книжки, да, надо почитать. Вам. В той редакции, которая сейчас стоит у меня - nio.Files нет вообще. Поэтому, правильный вывод: использовать File для тех целей, для которых я собирался его использовать - нельзя. Собственно, это и был правильный ответ на мой вопрос. И его я получил в самом начале от квалифицировнных специалистов. В чем вы пытались меня убедить - совершенно непонятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 17:21:44 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovstepplerusГм. Два прохода по цлиндрической заготовке. С одной стороны отверстие и метчик на М9, с другой - плашка на М6. Или еще проще - стачиваем на болте три лишних миллиметра и плашка на М6.До вас по-прежнему не доходит, что программирование - единственная отрасль, где можно изготовить такой переходник не перетачивая ни болт, ни гайку. Такая возможность сама по себе - ни хорошо ни плохо. Плохо считать, что (не)использование такой возможности - единственно верное решение. Первый вариант и был "не болт ни гайку", а переходник. Третью деталь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 17:23:00 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
svenomstepplerusпропущено... То есть, вот авторы новой редакции совсем лохи, да? public static void delete(Path path) throws IOException Чорт, даже void, даже не boolean. "Я знал, я знал" (С) Идите уже, почитайте нормальные книги, как правильно программы писать. Учителя, е-мое.Почему же лохи? Просто описанная вами проблема - когда от момента возникновения ошибки до ее обработки что-то может изменить состояние файла - не решаема в рамках JVM, хоть вы boolean возвращайте, хоть код ошибки ОС, хоть бросайте эксепшн. Поэтому с точки зрения прикладного программиста проблема обработки ошибок работы с файлом принципиально будет решаться одинаково хоть в JVM6, хоть в JVM7. Ну, у методов либо есть атомарность, либо нет. И да, устройство может отвалиться после того, как я открою файл. А в юниксах его могут еще и удалить пока я его читаю. Но в этих случаях я расчитываю получить именно ту ошибку, которая произошла и именно при той операции, которую я делаю. А не так, что я проверил, что файл есть, открываю его, а его нет. А ошибку уже не обрабатываю. Зачем? Я же уже проверил, что файл есть. Что за ерунда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 17:32:39 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusВ той редакции, которая сейчас стоит у меня - nio.Files нет вообще.Даже если предположить, что вы не устанавливали документацию локально (я не устанавливаю), то на пророчьем-то сайте вас, надеюсь, не забанили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 17:37:02 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusА не так, что я проверил, что файл есть, открываю его, а его нет. А ошибку уже не обрабатываю. Зачем? Я же уже проверил, что файл есть. Что за ерунда?Вас опять подводит нечтение документации. Во всех версиях эта ошибка обрабатывается одинаково - jvm кидает исключение. А уж вы решаете как именно его обрабатывать и обрабатывать ли вообще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 17:40:07 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerussvenomпропущено... Почему же лохи? Просто описанная вами проблема - когда от момента возникновения ошибки до ее обработки что-то может изменить состояние файла - не решаема в рамках JVM, хоть вы boolean возвращайте, хоть код ошибки ОС, хоть бросайте эксепшн. Поэтому с точки зрения прикладного программиста проблема обработки ошибок работы с файлом принципиально будет решаться одинаково хоть в JVM6, хоть в JVM7. Ну, у методов либо есть атомарность, либо нет. И да, устройство может отвалиться после того, как я открою файл. А в юниксах его могут еще и удалить пока я его читаю. Но в этих случаях я расчитываю получить именно ту ошибку, которая произошла и именно при той операции, которую я делаю. А не так, что я проверил, что файл есть, открываю его, а его нет. А ошибку уже не обрабатываю. Зачем? Я же уже проверил, что файл есть. Что за ерунда?Речь шла не про предварительные проверки перед совершением операции, а про определение источника ошибки после ее возникновения - 13083383 . То есть в старой редакции (до 7), когда возникает ошибка, мы не знаем, чем она была вызвана. Для этого мы, если нам это требуется, производим определенные проверки - есть ли файл на месте, есть ли у нас права, и т.д.. По итогам этих проверок мы решаем, что делать дальше. В JVM7 мы уже получаем вменяемое описание ошибки. Так вот, смысл заключается в том, что с точки зрения обработки исключительной ситуации у нас может возникнуть race condition как в первом случае, так и во втором. Когда, например, мы поняли, что папка не удалилась, так как они не пустая, мы начинаем ее очищать, но кто-то другой уже сделал это - то есть мы впустую потратили время. Поэтому с точки зрения простоты использования, редакция JVM7, разумеется, выглядит более привлекательно, спору нет. Но с точки зрения семантики обработки исключений принципиально не меняется абсолютно ничего, ибо ни первый, ни второй подход не дают нам гарантий того, что имеющиеся у нас сведения о произошедшей ошибки не устарели к тому моменту, когда мы приступаем к ее обработке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 17:45:15 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovstepplerusА не так, что я проверил, что файл есть, открываю его, а его нет. А ошибку уже не обрабатываю. Зачем? Я же уже проверил, что файл есть. Что за ерунда?Вас опять подводит нечтение документации. Во всех версиях эта ошибка обрабатывается одинаково - jvm кидает исключение. А уж вы решаете как именно его обрабатывать и обрабатывать ли вообще. Дык. Эта. Проблема то как раз в том, что у File.delete() нет исключений (в SE5). То о чем вы со swenom толкуете тоже понятно. Так приходится делать, когда вызываешь внешнюю программу, которая вообще ничего не возвращает например. Если она создает, скажем, файл, то, после ее вызова, приходится в явном виде проверять, что такой файл действительно появился. Или, что количество файлов после совпадает с количеством файлов до. Или еще какую-нибудь подобную фигню. Но внутри одной системы хотелось бы этого избегать всеми возможными силами. Теперь я знаю способ, как этого добиться. Можно сказать, что цель данного обсужения успешно достигнута. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 18:12:26 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovstepplerusВ той редакции, которая сейчас стоит у меня - nio.Files нет вообще.Даже если предположить, что вы не устанавливали документацию локально (я не устанавливаю), то на пророчьем-то сайте вас, надеюсь, не забанили? А могут? А по сути дела: import static java.nio.file.* дает фигвам import static java.nio.file.StandardCopyOption.*; дает аналогичный фигвам Логично предположить, что у меня этих пакетов просто нет. А раз нет у меня, то и в других местах они без специальных пинков не появятся. Зато теперь есть основания для пинков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 18:17:20 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovstepplerusА не так, что я проверил, что файл есть, открываю его, а его нет. А ошибку уже не обрабатываю. Зачем? Я же уже проверил, что файл есть. Что за ерунда?Вас опять подводит нечтение документации. Во всех версиях эта ошибка обрабатывается одинаково - jvm кидает исключение. А уж вы решаете как именно его обрабатывать и обрабатывать ли вообще. Да больной какой-то. "Я хочу чтоб было так как я хочу" - ну сделай так как хочешь. Но работать будет так как написано в документации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 18:19:51 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusМожно сказать, что цель данного обсужения успешно достигнута. считаю страниц в топике пока не достаточно, так что рано расслаблять булки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 18:27:56 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
chpashastepplerusМожно сказать, что цель данного обсужения успешно достигнута. считаю страниц в топике пока не достаточно, так что рано расслаблять булки Да без проблем, продолжайте. Форум, слава богам, пока общий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 18:29:37 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
1024Basil A. Sidorovпропущено... Вас опять подводит нечтение документации. Во всех версиях эта ошибка обрабатывается одинаково - jvm кидает исключение. А уж вы решаете как именно его обрабатывать и обрабатывать ли вообще. Да больной какой-то. "Я хочу чтоб было так как я хочу" - ну сделай так как хочешь. Но работать будет так как написано в документации. Да, будет так, как в документации. Но обсуждалось то не это, вы не заметили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 18:30:34 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusДык. Эта. Проблема то как раз в том, что у File.delete() нет исключений (в SE5).Вы как-то сумбурно перескакиваете с предмета на предмет. В том что вы поскипали было: "А не так, что я проверил, что файл есть , открываю его, а его нет. А ошибку уже не обрабатываю. Зачем? Я же уже проверил, что файл есть. Что за ерунда?". Если файл существует и собираетесь его открывать, то причём здесь delete()? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 19:37:51 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
Да мне кажется степл норм чувак, он уже давно все понял, просто гордость не позволяет признать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 19:43:26 |
|
||
|
Простой вопрос про finally
|
|||
|---|---|---|---|
|
#18+
stepplerusЕсли она создает, скажем, файл, то, после ее вызова, приходится в явном виде проверять, что такой файл действительно появился. Или, что количество файлов после совпадает с количеством файлов до. Или еще какую-нибудь подобную фигню. Но внутри одной системы хотелось бы этого избегать всеми возможными силами.Зачем, если без особых проблем может быть сделано примерно так: Код: java 1. 2. 3. 4. 5. 6. 7. Всё - есть массив с "правильным", на момент проверки, содержимым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2012, 19:56:02 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2131051]: |
0ms |
get settings: |
9ms |
get forum list: |
25ms |
check forum access: |
8ms |
check topic access: |
8ms |
track hit: |
58ms |
get topic data: |
17ms |
get forum data: |
5ms |
get page messages: |
151ms |
get tp. blocked users: |
2ms |
| others: | 291ms |
| total: | 574ms |

| 0 / 0 |
