powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / отловить исключение, обраотать его и передать выше
25 сообщений из 26, страница 1 из 2
отловить исключение, обраотать его и передать выше
    #40009375
GrigoriyFomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть некий рабочий код проводки товара:
создается новая накладная,
создаются проводки,
создается кассовая операция.

Все эти 3 операции обвернуты в try .. except и при возникновении любого исключения на любой стадии ведет к откату пишущей транзакции - все замечательно.

Но теперь решил отдельно обработать исключение, которое возникает на втором этапе (проводок) и написал по нему развернутое сообщение об ошибке пользователю с расшифровкой всех параметров.
Но теперь основная обертка не знает об исключении и пытается продолжить выполнение алгоритма.
Суть вопроса - как мне отработать локальный обработчик исключения и прервать выполнение основного алгоритмся с возбуждением исключения для внешнего обработчика?
Как вариант вижу - сделать это все во внешнем обработчике, но это не совсем верно, создание проводки происходит не только в этом алгоритме, но и в других, поэтому реагирование на локальное исключение более правильно
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009379
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrigoriyFomin
Но теперь основная обертка не знает об исключении и пытается продолжить выполнение алгоритма.

Есть такое слово - raise
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009380
GrigoriyFomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman
GrigoriyFomin
Но теперь основная обертка не знает об исключении и пытается продолжить выполнение алгоритма.

Есть такое слово - raise


а его корректно вызывать в секции EXCEPT ? там какого-то перекоса не будет?
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009382
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrigoriyFomin
wadman
пропущено...

Есть такое слово - raise


а его корректно вызывать в секции EXCEPT ? там какого-то перекоса не будет?

Да. Нет.
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009383
GrigoriyFomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman, спасибо, просто добавил Raise и алгоритм заработал как и прежде!!! Век живи - век учись
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009384
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обработали и пришите raise; - исключение будет повторено.
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009387
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrigoriyFominВек живи - век учись

А в предыдущий век учебник по основам языка прочитать было не судьба?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009403
Mixrud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Именно raise! Точнее просто raise. Я тоже испытал проблемы: в except end raise Exception.create писал.
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009407
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrigoriyFomin
Но теперь решил отдельно обработать исключение, которое возникает на втором этапе (проводок) и написал по нему развернутое сообщение об ошибке пользователю с расшифровкой всех параметров.

Верная мысль.

GrigoriyFomin
Суть вопроса - как мне отработать локальный обработчик исключения и прервать выполнение основного алгоритмся с возбуждением исключения для внешнего обработчика?

Читаем классиков: 1950925

P.S. У меня ещё есть AddExceptionFooter и AddExceptionHeaderFooter, об их содержимом можно догадаться самостоятельно.
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009424
Mixrud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer,

Вы про Exception.ClassType ? Да, конечно. Я взял JCLDebug и реализовал на нем печать стека на всех исключениях. Стек не отображается если класс исключения EBusinessException.
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009427
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mixrud
Я взял JCLDebug и реализовал на нем печать стека на всех исключениях. Стек не отображается если класс исключения EBusinessException.

Печать стека - не особо нужная вещь. Выдача значений ключевых параметров - гораздо важнее.
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009476
GrigoriyFomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
Mixrud
Я взял JCLDebug и реализовал на нем печать стека на всех исключениях. Стек не отображается если класс исключения EBusinessException.

Печать стека - не особо нужная вещь. Выдача значений ключевых параметров - гораздо важнее.

ну почему - стек позволяет выловить непредвиденные исключения. Хотя использование DevExpress зачастую дает ошибку в их либах - то в EditorRepository, то в обычных компонентах даты.
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009481
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GrigoriyFomin
ну почему - стек позволяет выловить непредвиденные исключения.

В воспроизводимом случае набора ключевых параметров достаточно, чтобы воспроизвести ситуацию и разобраться в происходящем. Стек при этом в исходных данных не нужен, он оказывается виден по факту. В невоспроизводимых же случаях... стек лучше, чем ничего, но не особо помогает. По сравнению с просто местом ошибки он мало что даёт.

GrigoriyFomin
Хотя использование DevExpress зачастую

Ну да. Если бы они платили по десять баксов за исправление каждой своей ошибки, я бы разбогател :)
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009495
Mixrud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer,

В DevExpress не сталкивался с Exception. А вот с кривой реализацией их компонентов да. Но все подчистил, благо исходники Девок конторой куплены.
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009497
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mixrud
В DevExpress не сталкивался с Exception.

Рад за Вас. У меня прямо сейчас в соответствующем списке 37 проблем, большая часть из которых - "неуловимые" баги DevExpress из серии "у одного из пользователей вдруг невоспроизводимо стрельнуло". Например, первый попавшийся случай:
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009498
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mixrud
В DevExpress не сталкивался с Exception
CxGrid в сложно модели нередко подглючивает.
Да и вся концепция обращения с данными в нем, мягко говоря, не очень, попытка скрестить нескрещиваемое.
Самое полезное там - dxLayoutControls. Ну и сами контролы сильно лучше VCL-ских, как по дизайну, так и по функционалу.
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009499
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дубль
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009500
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
Самое полезное там - dxLayoutControls.

Да ну что Вы :(
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009501
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer, я серьезно.
Вообще не представляю, как без него можно мультиязычное приложение нормально сотворить.
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009505
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Естественно есть у нас баги. И у Эмбаркадеро. Но большинство обращений в саппорт связано с проктостоматологическим сценарием использования наших компонентов. И это беда всех более-менее крупных вендоров больших библиотек.
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009506
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис
softwarer, я серьезно.
Вообще не представляю, как без него можно мультиязычное приложение нормально сотворить.

Мне не приходилось всерьёз геморроиться мультиязычностью, не могу сказать. Но свой набор layout-компонент я сотворил после знакомства с явой, году в 2005-м, и когда довелось столкнуться с девэкспрессовским, реакция "уберите это от меня". Очень сложно, неудобно и бедно.
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009508
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer
Очень сложно, неудобно и бедно.
У меня строго противоположные впечатления по всем пунктам. Ваш вариант не видел, поэтому сравнить не могу.
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009509
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У всех разный уровень вхождения. Кому-то легко, кому-то тяжело
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009518
Mixrud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
white_nigger,

А вы сотрудник DevExpress ? К TCxExtLookupcombobox можно к вьюхе подключить TCustomDatasource?
Году так в 2005 было нельзя.
...
Рейтинг: 0 / 0
отловить исключение, обраотать его и передать выше
    #40009519
Mixrud
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer
Mixrud
В DevExpress не сталкивался с Exception.

Рад за Вас. У меня прямо сейчас в соответствующем списке 37 проблем, большая часть из которых - "неуловимые" баги DevExpress из серии "у одного из пользователей вдруг невоспроизводимо стрельнуло". Например, первый попавшийся случай:

А у вас включён multithreading в опциях? Если включён, то выключите.
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / отловить исключение, обраотать его и передать выше
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]