Текущее время: Чт, июн 26 2025, 08:16

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Отлов ошибки ITAB_ILLEGAL_COMPONENT
СообщениеДобавлено: Пт, сен 09 2005, 13:44 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
При вызове REUSE_ALV_GRID_DISPLAY возникает сабж.ошибка. Пытаюсь сделать блок try...endtry, но не знаю, какое исключение в catch прописывать, потому как на ITAB_ILLEGAL_COMPONENT ругается, что The type "ITAB_ILLEGAL_COMPONENT" is unknown.
Подскажите, как отлавливать исключения алв-списков, если эти списки делаются через ф.модули. И подскажите, плз, как вообще посмотреть, какое исключение сейчас выброшено. К примеру, REUSE_ALV_GRID_DISPLAY после try выполняется с ошибкой, я в отладке хочу посмотреть название исключения, чтобы его отлавливать. Как это делается?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 15:36 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Да всё очень просто. Если возбужается исключительная ситуация, которую можно отловить, но она не обработана, то мы увидим дамп, где будет прописано имя этой ситуации, а точнее имя класса, которое будет начинаться с CX. Если Вам нужно отловить все исключительные ситуации "невзирая на лица" ловите CX_ROOT - не промахнётесь. От этого класса наследуются все остальные классы исключений.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 15:48 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
Дело в том, что в дампе нет исключения на СХ - есть это самое ITAB_ILLEGAL_COMPONENT. А как его отловить? И как узнать имя исключения под отладкой? Я-то проблему решил - т.е., я исправил ошибку в программе. Но принципиально вопрос остается актуальным...

Попутно вопрос. У REUSE_ALV_GRID_DISPLAY есть всего одна особая ситуация - PROGRAM_ERROR. Как узнать, где описано ITAB_ILLEGAL_COMPONENT и другие, подобные ему, исключения?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 16:17 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Можно попробовать CATCH SYSTEM-EXCEPTIONS, если эта ошибка вообще ловится. Подробнее про отлов исключений здесь.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 16:46 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
Про отлов исключений я читал. Правда, в доке, что поставляется с R/3, а не в он-лайн помощи, но я так и думал, что эта инфа находится в помощи по TRY...ENDTRY. Возможно, надо отлавливать CX_ROOT и анализировать его... Можно ли как-то из CX_ROOT вытянуть инфу, что за исключение выброшено? И как быть, если исключение вообще не ловится?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 17:15 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 14:35
Сообщения: 1519
Откуда: В ВЕЧНОМ БАНЕ
RoadRunner написал:
Про отлов исключений я читал. Правда, в доке, что поставляется с R/3, а не в он-лайн помощи, но я так и думал, что эта инфа находится в помощи по TRY...ENDTRY. Возможно, надо отлавливать CX_ROOT и анализировать его... Можно ли как-то из CX_ROOT вытянуть инфу, что за исключение выброшено? И как быть, если исключение вообще не ловится?

К сожалению если отлов исключения не предусмотрен, то... получаем дампец или переписываем программу так чтобы этого исключения не было как класса, вот в 4.0 вообще исключений не было и ничего выворачивались как-то :P


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 17:26 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Теоретически можно попробовать получить динамический тип объекта исключения с помощью классов CL_ABAB*DESCR. Но, боюсь, кроме типа объекта и текста исключения вытянуть ничего не получится.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, сен 09 2005, 17:32 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
Uukrul написал(а):
...вот в 4.0 вообще исключений не было и ничего выворачивались как-то :P

Я же сказал ранее:
RoadRunner написал:
Я-то проблему решил - т.е., я исправил ошибку в программе.

EGF написал(а):
Теоретически можно попробовать получить динамический тип объекта исключения с помощью классов CL_ABAP*DESCR. Но, боюсь, кроме типа объекта и текста исключения вытянуть ничего не получится.

Надеюсь, больше ничего и не надо - типа объекта и текста исключения вполне хватит, чтобы сформировать сообщение об ошибке и обойтись без дампа. Кстати, есть какой-нить обработчик по типу оракловского WHEN OTHERS THEN...? Или просто общий обработчик CX_ROOT писать в последнюю очередь?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 12 2005, 08:43 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
RoadRunner написал:
Или просто общий обработчик CX_ROOT писать в последнюю очередь?

Именно так.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, сен 12 2005, 08:46 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Вт, авг 17 2004, 08:55
Сообщения: 331
Откуда: Украина, г.Мариуполь
Пол: Мужской
Спасибо за советы!


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB