|
|
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
есть try()catch() в try есть возможность возникновение ошибки если я её обработаю, можно ли вернуться в и продолжить код с того места где возниклоисключение (в обработке исключения я устранил возможность возникновения исключения) в access такое возможно и используется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2015, 20:51 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадяесть try()catch() в try есть возможность возникновение ошибки если я её обработаю, можно ли вернуться в и продолжить код с того места где возниклоисключение (в обработке исключения я устранил возможность возникновения исключения) в access такое возможно и используется а так? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2015, 21:28 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадя, это тебе не бейсик, чтобы делать goto :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2015, 21:33 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
rema174вадя, это тебе не бейсик, чтобы делать goto :) очень жаль. 2ferc , это не то. надо возврат назад... а зря такого нет в java ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2015, 21:50 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадя, а что там сзади, что так туда надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2015, 22:03 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
fercвадя, а что там сзади, что так туда надо? сзади - это возврат в точку возникновения исключения, ты обработал исключение - изменил что-то и тебе надо продолжить выполнение с точки возникновения(повторить команду вызвавшую исключение, его уже не будет ) и продолжить код дальше. т.е. не делать проверку на правильность чего-либо, к примеру если в цикле производится что-то и каждый раз происходит проверка, а ты знаешь, что ошибка может возникнуть в 1 из 100 (к примеру) цилов ( а может и не возникнуть) - зачем делать лишнее действие (проверку) когда можно произвести действия по исправления этой ошибки и продолжить дальше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2015, 22:13 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадяfercвадя, а что там сзади, что так туда надо? сзади - это возврат в точку возникновения исключения, ты обработал исключение - изменил что-то и тебе надо продолжить выполнение с точки возникновения(повторить команду вызвавшую исключение, его уже не будет ) и продолжить код дальше. т.е. не делать проверку на правильность чего-либо, к примеру если в цикле производится что-то и каждый раз происходит проверка, а ты знаешь, что ошибка может возникнуть в 1 из 100 (к примеру) цилов ( а может и не возникнуть) - зачем делать лишнее действие (проверку) когда можно произвести действия по исправления этой ошибки и продолжить дальше. ну, например, вот так можно: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2015, 23:06 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
fercну, например, вот так можно: рекурсию я бы в цикл всё-таки развернул ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.05.2015, 23:16 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
ferc ну, например, вот так можно: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ну как частный случай костыля можно ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 04:26 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадяесть try()catch() в try есть возможность возникновение ошибки если я её обработаю, можно ли вернуться в и продолжить код с того места где возниклоисключение (в обработке исключения я устранил возможность возникновения исключения) в access такое возможно и используется Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 08:01 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
Alexey Tomin, это всё равно не то. к сожалению... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 09:01 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадя, Java серверный ЯП. Там потоки, а не ГУИ с повтором действий. Мне сложно придумать твой кейс на сервере. Есть JS\Delphi\.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 10:19 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадяAlexey Tomin, это всё равно не то. к сожалению... Ты хочешь выполнить прямо ту операцию, которая упала? Ну значит вынеси её в отдельный метод и оберни её в такую штуку. Вообще если что-то хоть как-то требует обособления- это хороший повод вынести в отдельный метод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 11:28 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
Petro123вадя, Java серверный ЯП. Там потоки, а не ГУИ с повтором действий. Мне сложно придумать твой кейс на сервере. Есть JS\Delphi\.... Легко. Пример из моей жизни. Дёргаем сервер, у которого есть авторизация и внезапно (в неизвестное нам время) кончаются сессии. Куча операций, каждая может обломится из-за "session expired". При этом надо заново залогинится и повторить последнюю операцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 11:43 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 11:47 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
Alexey Tomin, согласен. Я утрировал, т.к. вернуться в предыдущее состояние бывает не так просто. У меня в сотовом СМСка в тоннеле метро не отправляется пока не выеду)). Правда, там ствится период-дата следующей попытки). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 12:47 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
mayton, +1 самое красивое и лаконичное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 12:49 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
Я вообще не люблю синтаксис исключений. Избыточный он. Вот создатели GoLang каким-то образом избавились от них. Интересно какой ценой? И как они решают общие (general) вопросы связанные с ловушками неизвестных ошибок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 12:53 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
mayton, я использую только для проброски наверх и остановки стека выполнения (длинного). Ну и чтобы отвязаться от другого программиста, если он неправильно меня вызывает)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 13:01 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
Petro123mayton, +1 самое красивое и лаконичное +1 соглашусь, но всё равно, это не то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 13:11 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
хотя и есть некоторые преимущества с первоначальным "эталоном" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 13:14 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадяхотя и есть некоторые преимущества с первоначальным "эталоном" нет золотой пули. Ты ещё аннотацию поищи на бесконечное долбание процедурой без устали). Сам даже не сказал где применяется. Исключения - одно, циклы другое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 13:28 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадяPetro123mayton, +1 самое красивое и лаконичное +1 соглашусь, но всё равно, это не то. Объясни, что "не то"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 13:53 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
Alexey TominОбъясни, что "не то"? Всё не то. :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 14:24 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
"Куча операций, каждая может обломится из-за "session expired". При этом надо заново залогинится и повторить последнюю операцию. " Ваш вариант - это "начать все сначала". Ну или с сейвпоинта(они вроде есть в скале). Автор хочет, насколько я понял, начать с той же точки в середине функции, где исключение возникло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 14:31 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
не то - слишком много дополнительных строк. всё сгруппировано вокруг обрабатываемой строки. для цикла я привёл как пример в аксесс "стоимость" такой операции очень мала, в некоторых случаях - это даже основное правильное решение. вариант 17705803 действительно "лаконичен", но его "стоимость " намного выше. но я беру предложенный вариант на заметку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 15:04 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
причина возникновения этого вопроса : текущий проект, одна из таблиц формируется в памяти, соответственно при перезагруки её нет, а один блок на одной из страниц основан на ней. в продакшене на дебиан запускаю хранимку, которая строит эту таблицу и как-бы всё нормально, но вот при разработке под окнами это решение на подходит. и частенько забываю вручную произвести запуск этой хранимки, кусок кода вылетает в исключение ..и всё. а достаточно при этом исключении запустить хранимку и повторить действие . да и для продакшена тоже будет выгода - не надо помнить/писать инструкцию о необходимости вносить нестандартную запись в ini файл mysql. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 15:16 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадяпричина возникновения этого вопроса : текущий проект, одна из таблиц формируется в памяти, соответственно при перезагруки её нет, а один блок на одной из страниц основан на ней. в продакшене на дебиан запускаю хранимку, которая строит эту таблицу и как-бы всё нормально, но вот при разработке под окнами это решение на подходит. и частенько забываю вручную произвести запуск этой хранимки, кусок кода вылетает в исключение ..и всё. а достаточно при этом исключении запустить хранимку и повторить действие . да и для продакшена тоже будет выгода - не надо помнить/писать инструкцию о необходимости вносить нестандартную запись в ini файл mysql. 1. Решать надо изначальную проблему. Банально- локально всё одно код отличается- вот и надо запускать локально хранимку. 2. Прошляпил выполнение хранимки- не жалуйся, что exception надо ловить. 3. Я не понимаю, почему ты говоришь, что этот код много времени займёт. Надо оборачивать в while+try не создание страници, а первую операцию по заполнении проблемного блока. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 15:22 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
автор1. Решать надо изначальную проблему. Банально- локально всё одно код отличается- вот и надо запускать локально хранимку. 2. Прошляпил выполнение хранимки- не жалуйся, что exception надо ловить. 3. Я не понимаю, почему ты говоришь, что этот код много времени займёт. Надо оборачивать в while+try не создание страници, а первую операцию по заполнении проблемного блока. 3 - я не говорю, что время много займет, я говорю о "общей стоимости" - дополнительные строки, понижение читабельности кода и т.д. 2 - с этим никто не спорит, по логике акса это нормальное состояние - обработал , исправил, вернулся продолжил. 1 - надо запускать локально хранимку - да надо, можно сделать в блоке инициализации, но когда куча файлов в проекте - проще чтоб всё логически связанное было в одном месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 15:35 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадяхотя и есть некоторые преимущества с первоначальным "эталоном" Это про какой такой "эталон" ты толкуешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 15:42 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
maytonвадяхотя и есть некоторые преимущества с первоначальным "эталоном" Это про какой такой "эталон" ты толкуешь? ну который я встретил в аксессе.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 15:51 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадяну который я встретил в аксессе.... покажи или дай ссылку. Конкретнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 16:04 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
Petro123вадяну который я встретил в аксессе.... покажи или дай ссылку. Конкретнее. ну конкретно показать не могу, акесом перестал заниматься лет 10 назад. если смогу найти - приведу пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 16:28 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
если мне память не изменяет Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 16:38 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
на строке a = 3 / b будет ошибка исправляем b = 3 возвращаемся Resume продолжаем выполнение с a=1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 16:49 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадя, про GoTo в VBA и вспоминать не надо. И про стоимость данной операции)) Сразу бы сказал эту волшебную фразу). Access в данном топике совсем ни при чём. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 16:50 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
Petro123вадя, про GoTo в VBA и вспоминать не надо. И про стоимость данной операции)) Сразу бы сказал эту волшебную фразу). Access в данном топике совсем ни при чём. Удачи! это не важно - решение подсказали. в данном применении GoTo не совсем GoTo :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 17:07 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
прикольный инструмент, призванный компенсировать отсутствие квалификации. синтаксический сахар с длинным названием "я х.з. где тут может произойти ошибка, если таки жахнет, вернись примерно сюда и попробуй снова, вдруг проканает" . а где в этом чудесном механизме защита от зацикливания? вдруг ошибка вечная ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 17:08 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
Это шило на мыло: в модели возобновления обработчику требуется как-то узнавать - а где мы были, пока были шариком? Что, в общем, не слаще редьки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 17:11 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадяесли мне память не изменяет Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. У меня несколько вопросов. Данный сахар предполагает что после входа в блок mEr: мы должны выполнить b=3 и вернуться на line где произошла ошибка (опкод/байткод?) или повторно войти в процедуру test3 ? Каковы возможности конструкции "On Error GoTo mEr". Можем ли мы управлять классами ловушек. Тоесть ловить отдельно IO-исключения? Отдельно исключения арифметки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 17:14 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
maytonвадяесли мне память не изменяет Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. У меня несколько вопросов. Данный сахар предполагает что после входа в блок mEr: мы должны выполнить b=3 и вернуться на line где произошла ошибка (опкод/байткод?) или повторно войти в процедуру test3 ? Каковы возможности конструкции "On Error GoTo mEr". Можем ли мы управлять классами ловушек. Тоесть ловить отдельно IO-исключения? Отдельно исключения арифметки? если поставить такое в начале то вывалится где угодно. при грамотном использовании их ставят пред тем оператором который хотят "защитить" - полная аналогия с try. обработчику не требуется знать , он просто знает(прогер подсказывает, так же как и у try), Resume возвращает в точку возникновения ошибки и выполняет эту строку повторно с новыми параметрами. таких On Error GoTo xxxxx можно ставить скольугодно, хоть перед каждо строкой :) и соответственно столько же обработчиков при возникновении ошибки в обработчик передается вся инфа об ошибке - код, описание и пр. правильная обработка должна содержать проверку ошибки и если ошибка деление на нуль (как в примере) присвоить в=3 и вернуться повторного запуска процедуры не требуется , если код ошибки другой - завершить Sub (как вариант). мы можем поставить if или case и обработать все варианты ошибок и соответственно сделать нужные действия и вернуться в точку образования ошибки перейти на следующую строку Resume next перейти на любую другую строку. защита от зацикливания - продуманность прогера. это как и в любом другом месте... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 17:39 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
авторМожем ли мы управлять классами ловушек. Тоесть ловить отдельно IO-исключения? если мне память не изменяет - то ошибки имеют "классы" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 17:43 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
mayton, это не сахар, это содержательный синтаксис с собственной семантикой. автормы должны выполнить b=3 и вернуться на line где произошла ошибка (опкод/байткод?) или повторно войти в процедуру test3 ? в данном случае - точно на ту строку, в которой произошла ошибка resume next - проигнорировать строку, в котрой была ошибка и продолжить со следующей resume line - продолжить выполнение со строки line (номер строки или именованная метка) авторКаковы возможности конструкции "On Error GoTo mEr". Можем ли мы управлять классами ловушек. Тоесть ловить отдельно IO-исключения? Отдельно исключения арифметки? on error goto 0 - отключает текущий обработчик on error resume next - при ошибке игнорировать ее и пепеходить к выполнению следующей строки on error goto line - устанавливает текущий обработчик на код, начинающийся со строки line (обычно именованная метка, но вроде номер строки допускается) on error goto -1 - спец. инструкция, используемая в "блоке" обработки ошибки. спец вид resume ( по памяти) (подробности в акцессном форуме) отдельно ловить (обрабатывать) IO и отдельно арифметику можно, если это разнесено в разные блоки кода текущий установленный обработчик - всегда один - установить гроздь одновременно активных обработчиков нельзя. не сахар потому, что в тот момент, когда система попадает в блок обработки ошибки по goto от On Error, исполняющая система находится в специальном глобальном состоянии, которое завершается по выполнении resume. так работают vba, classic vb, в vb.net сохранена возможность воспользоваться этой механикой по желанию разработчика, или структурированными исключениями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 17:46 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
2booby , спасибо, напомнил подробности... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 17:52 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
Можно попробовать со свичём на состояние, вроде такого: Код: java 1. 2. 3. 4. 5. 6. 7. Хотя вариант, конечно, не самый красивый. Вообще странно, что нет механизма "возврата к предыдущему состоянию". В сишарпе ещё хуже, там нужно будет такой свитч ещё и в цикл обернуть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 20:51 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
Давайте порассуждаем. Как может быть достигнуто такое поведение? Каждый оператор который (потенциально выбрасывает исключение) должен быть обёрнут в do{..}while() ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 21:27 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
maytonДавайте порассуждаем. Как может быть достигнуто такое поведение? Каждый оператор который (потенциально выбрасывает исключение) должен быть обёрнут в do{..}while() ? в общем-то да. если нам нужна такая обработка с возвратом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 21:33 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
Что будет если в блоке обработки исключений возникает новое исключение? В данном псевдо-бейсике? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 21:35 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
mayton, там также можно сделать такую обработку, и так до ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 21:42 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
так правильно Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 21:55 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
maytonЧто будет если в блоке обработки исключений возникает новое исключение? В данном псевдо-бейсике? mayton, пять баллов. Ты поймал пойнт. в момент перехода на метку открывающую блок кода обработки ошибки, взводится глобальное состояние "я, система исполнения нахожусь в состоянии восстановления (ошибки)". По памяти, примерно вот что происходит. Эта зона вне перехвата ошибок. Любая ошибка, происходящая в текущем контексте не может быть перехвачена в нем же и (если) возникающая ошибка прерывает выполнение текущего контекста, передавая управление вызывающему контексту, если он есть, где начинает действовать обработчик ошибки вызывающего контекста, если он установлен. иначе краш программы. Поэтому, непосредственно внутри блока обработки ошибки их, ошибок не предполагается. Если необходимо, чтобы восстанавливающий ошибочное состояние код обязательно отрабатывал в "нормальном" глобальном состоянии, а не в глобальном состоянии "обрабатываю ошибку", то применяют либо двойное goto (где первое из них - это resume, а второе goto должно магическим образом знать, куда осуществлять переход. либо используется on error goto -1, который отключает глобальный режим "обрабатываю ошибку" в последовательности команд, на которую был осуществлен переход по ошибке после ранее установленного on error goto label. авторДавайте порассуждаем. Как может быть достигнуто такое поведение? Каждый оператор который (потенциально выбрасывает исключение) должен быть обёрнут в do{..}while() ? технически стартовой точкой для воспроизведения простой resume-механики может быть код вида label: do{... if (is_error) {break label;} else {break;} while(1=1) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2015, 22:54 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
booby, label: походу - первым же кликом нашлось предложение от 2012 года - JSR: 901 MR о реализации в яве явного goto Автор(ы) понимают, что что уже не успевают в восьмерку со своим предложением. Но считают, что реализовать надо обязательно. По их мнению, не менее 25% кодовой базы, выписанной в виде циклов, требует переписывания с использованием goto. Так что, к девятке ждите. Тогда и с бейсиком в яве полегчает. https://blogs.oracle.com/darcy/entry/upcoming_jep PS если и правда сделают, то у явы может оказаться серьезное будущее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2015, 03:58 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
booby, посмотри на дату публикации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2015, 04:40 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2015, 12:44 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
Usman, вопросы: возможен ли перход из catch в середину try? сохранены ли значения остальных полей ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2015, 14:59 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадя, Если бы мне кто-то пожаловался на то, что трудно писать приложение, поскольку отсутствует GoTo, я бы ответил, чтобы он перепроектировал свой проект с нуля, потому, что такой извращенный код для обработки ошибок можно использовать только там , где стоимость потерянных данных равна 0 копеек. Кстати, такой случай был, но я просто посоветовал подумать о том, что язык проектировался не дураками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2015, 12:47 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
Valery Shiskinвадя, Если бы мне кто-то пожаловался на то, что трудно писать приложение, поскольку отсутствует GoTo, я бы ответил, чтобы он перепроектировал свой проект с нуля, потому, что такой извращенный код для обработки ошибок можно использовать только там , где стоимость потерянных данных равна 0 копеек. Кстати, такой случай был, но я просто посоветовал подумать о том, что язык проектировался не дураками. последний раз когда я использовал goto это был ассемблер для 580 но в данном варианте goto имеет несколько другой смысл (я про VBA) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2015, 13:21 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадянадо возврат назад... а зря такого нет в java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2015, 13:28 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
rema174вадянадо возврат назад... а зря такого нет в java Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. это я знаю, но это совсем не то, что я спрашивал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2015, 13:45 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадя, более близкого к goto врядли найдеш, значит надо реорганизовать свой код так, чтобы использовать label, если таки надо желать ход конем назад ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2015, 14:08 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
rema174вадя, более близкого к goto врядли найдеш, значит надо реорганизовать свой код так, чтобы использовать label, если таки надо желать ход конем назад мне надо не просто назад вертуться мне надо поймать исключение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2015, 14:18 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадямне надо не просто назад вертуться мне надо поймать исключение. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2015, 14:23 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
rema174, как вариант, но костыль ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2015, 14:37 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
вадя, так goto это и есть костыль, который в джаве не используется ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2015, 14:38 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
rema174вадя, так goto это и есть костыль, который в джаве не используется ) Он существует в виде опкодов goto(0xa7) и goto_w(0xc8) на уровне спецификации jvm как ни странно. Знающие люди хотя-бы раз открывали этот документ и вкурсе. А люди незнающие - распростаняют и множат заблуждения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2015, 15:13 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
rema174вадямне надо не просто назад вертуться мне надо поймать исключение. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. в данном случае метка label лишняя. такой вариант Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. как более логичный, но не откомпилируется в конечном результате 17712315 отличается от 17708664 только разным применением while ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2015, 15:19 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
maytonrema174вадя, так goto это и есть костыль, который в джаве не используется ) Он существует в виде опкодов goto(0xa7) и goto_w(0xc8) на уровне спецификации jvm как ни странно. Знающие люди хотя-бы раз открывали этот документ и вкурсе. А люди незнающие - распростаняют и множат заблуждения. а что толку что оно есть "на уровне спецификации"? если goto нет возможности использовать явно, значит не просто так это сделано mayton, вместо того чтобы писать "околовсячину" почитай чтоли вот это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2015, 15:28 |
|
||
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#18+
Мне неинтересно читать ссылки на чужие аргументы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2015, 15:45 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2125345]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
146ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
97ms |
get tp. blocked users: |
2ms |
| others: | 212ms |
| total: | 489ms |

| 0 / 0 |
