|
|
|
Возможно ли такое использование исключеий..
|
|||
|---|---|---|---|
|
#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 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38972050&tid=2125345]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
155ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 279ms |
| total: | 515ms |

| 0 / 0 |
