Текущее время: Ср, июн 25 2025, 21:15

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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