Текущее время: Вс, июл 20 2025, 08:55

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Перехват исключений в отладчике
СообщениеДобавлено: Пт, июл 11 2008, 07:20 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, ноя 29 2006, 19:34
Сообщения: 393
Добрый день!
Сам не абапер, но отлаживать приходится :)

Отлаживаю программу, на строке
READ DATASET ds_name INTO temp_rec.
вылетает исключение. Как отловить что это за исключение в отладчике?
Чтобы не писать доп. программку с TRY CATCH?


Последний раз редактировалось StillAtGo Пт, июл 11 2008, 15:30, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 11 2008, 08:17 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Так у Вас там дамп случается ? тр. st22 ищите свой дамп в нем будет exception.

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 11 2008, 10:45 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, ноя 29 2006, 19:34
Сообщения: 393
Lars написал:
Так у Вас там дамп случается ? тр. st22 ищите свой дамп в нем будет exception.

Не, в дамп не валится, после выполнения этой строчки отладка завершается. Т.е. код который выполняется после исключения не "пробегается" отладчиком...
Так вот, как узнать что это было за исключение?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 11 2008, 14:06 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, фев 11 2008, 11:54
Сообщения: 359
Откуда: Воронеж
Пол: Мужской
можно примерно так
Code:
data:       i type i,
               oref   TYPE REF TO cx_root,
               text1   TYPE string.

TRY.
  i = i / 0.
CATCH  cx_root INTO oref.
    text1 = oref->get_text( ).
ENDTRY.

в переменной oref будет имя исключения в переме нной text1 будет его текст.

ЗЫ: кажется есть какие то исключения, для которых эта конструкция не сработает.

_________________
Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 11 2008, 14:22 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, ноя 29 2006, 19:34
Сообщения: 393
XXX_:) написал:
можно примерно так
...


Я так и сделал, НО - это надо в код (САПовский) вставлять код для перехвата исключения или свою прогу писать.
А я бы хотел как-то в отладчике что за исключение увидеть, потипу как значение переменной можно посмотреть.
Воопче-то это можно сделать? :?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 11 2008, 14:37 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
а точно там exception? где вообще это происходит, при каких обстоятельствах и почему Вы решили, что это exception?

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 11 2008, 15:27 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, ноя 29 2006, 19:34
Сообщения: 393
Lars написал:
а точно там exception? где вообще это происходит, при каких обстоятельствах и почему Вы решили, что это exception?

Возникшая роблема описана здесь: LSMW не видит сконвертированных данных

Выполнялся код:
Code:
  PERFORM get_source_data.             " Load source data into INT_TAB
  IF records_read = 0.
    MESSAGE e513 WITH ibipparms-path   " file empty or is unreadable
    RAISING no_source_data.


В форме get_source_data вызывается функция 'IBIP_DATASET_SERVER'
В этой функции при отладке на операторе

Code:
READ DATASET ds_name INTO temp_rec.

отладка прекращается, система выводит MESSAGE e513.

Создали прогу

Code:
REPORT  Z_OTLADKA.
DATA: temp_rec LIKE ibiprec,
      ds_name LIKE IBIPPARMS-PATH.

DATA: l_oref TYPE REF TO cx_root,
      p_text typE text.

ds_name = 'TORO_OBJ_CREATE_EO_NEW.lsmw.conv'.

        "  OPEN DATASET ds_name FOR INPUT IN TEXT MODE          "1043108
        "    ENCODING UTF-8 SKIPPING BYTE-ORDER MARK.           "1043108

          OPEN DATASET ds_name FOR INPUT IN TEXT MODE
            ENCODING DEFAULT.

        IF syst-subrc = 0.
        DO.                            " loop until file empty.

          TRY.
            READ DATASET ds_name INTO temp_rec.
          CATCH
CX_SY_CODEPAGE_CONVERTER_INIT
CX_SY_CONVERSION_CODEPAGE
CX_SY_FILE_AUTHORITY
CX_SY_FILE_IO
CX_SY_FILE_OPEN
CX_SY_PIPE_REOPEN
INTO l_oref.
p_text = l_oref->get_text( ).
          ENDTRY.

          write : / p_text.

        ENDDO.
        endif.
        CLOSE DATASET ds_name.

по которой и поняли что возникло исключение


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 11 2008, 16:04 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
st22 все таки смотрели ?
модуль опять же rfc, возможно все таки генерится где-то дамп.
сразу переходит на строчку с ошибкой? rc_local какой-то возвращается?

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 11 2008, 16:23 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, ноя 29 2006, 19:34
Сообщения: 393
Lars написал:
st22 все таки смотрели ?
модуль опять же rfc, возможно все таки генерится где-то дамп.
сразу переходит на строчку с ошибкой? rc_local какой-то возвращается?

Прошу пардона :oops:
Был уверен что дамп это обязательно окошко с ругательствами, а оказалось ругательства иногда прячутся...
Тогда еще вопросик, ексепшн всегда в дамп вываливает если обработчика нету как в данном случае?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 11 2008, 16:29 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Пн, дек 20 2004, 16:05
Сообщения: 1080
Откуда: 4.0B
Пол: Мужской
Зависит от того, где и как происходит ексепшен. В модулях обновления, например, придет уведомление по почте.
Так нашелся дамп-то ?

_________________
Я слышу и забываю,
Я вижу и помню долго,
Я делаю и — понимаю.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июл 11 2008, 17:50 
Старший специалист
Старший специалист

Зарегистрирован:
Ср, ноя 29 2006, 19:34
Сообщения: 393
Lars написал:
Зависит от того, где и как происходит ексепшен. В модулях обновления, например, придет уведомление по почте.
Так нашелся дамп-то ?

Ну да :)
И что за ексепшн там написано


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

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


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

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


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

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