Текущее время: Чт, мар 28 2024, 17:18

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Невозможно обработать исключение в Z-ФМ  Тема решена
СообщениеДобавлено: Чт, авг 11 2022, 13:42 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, июл 01 2022, 13:42
Сообщения: 62
Добрый день, делаю первые шаги и не могу понять, почему у меня не получается обработать исключение.
Может, кто-то сможет подсказать, в чем тут ошибка.

Функция
Code:
IF ( bvariable = 0 ) .
    RAISE nulldivision.
   ELSE.
    WRITE: / 'This is', function_result.
  ENDIF.


Программа
Code:
PARAMETERS: a TYPE I, B TYPE I.
DATA: result TYPE I.

CALL FUNCTION 'ZZ_V_TESTF'
EXPORTING
  avariable = a
  bvariable = b
  IMPORTING
  function_result = result
  EXCEPTIONS
    NULLDIVISION = 1.

CASE sy-subrc.
  WHEN 0.
    WRITE: / 'Программа завершилась нормально'.
    WHEN 1.
    WRITE: / 'Что-то пошло не так'.
ENDCASE.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обработать исключение не получается
СообщениеДобавлено: Пт, авг 12 2022, 09:14 
Специалист
Специалист

Зарегистрирован:
Чт, дек 02 2010, 08:37
Сообщения: 156
Не совсем понятно, что значит "не получается обработать исключение".

Полностью повторил код.
Всё работает как надо - WRITE'ом выводятся соответствующие сообщения.
Если, конечно, внутри функции только IF...ENDIF стоит.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обработать исключение не получается
СообщениеДобавлено: Пт, авг 12 2022, 10:12 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, июл 01 2022, 13:42
Сообщения: 62
Спасибо за ответ.
НЕ получается: когда ввожу 0 (во втором значении b переменная), вываливается ошибка. А должно быть написано, что пошло не так, т.е обработаться исключительная ситуация.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обработать исключение не получается
СообщениеДобавлено: Пт, авг 12 2022, 15:42 
Специалист
Специалист

Зарегистрирован:
Чт, дек 02 2010, 08:37
Сообщения: 156
Код ФМ в студию, вот прямо так,
как он выглядит на закладке Исходный текст с самой первой строки по последнюю.
Можно удалить компрометирующие строки :)


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Невозможно обработать исключение в Z-ФМ
СообщениеДобавлено: Вт, авг 16 2022, 10:47 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, июл 01 2022, 13:42
Сообщения: 62
:lol:
Code:
REPORT ZZ_V_TEST.
PARAMETERS: a TYPE I, B TYPE I.
TYPES: BEGIN OF str_table,
  field1(20) TYPE C,
  field2(20) TYPE C,
  END OF str_table.

DATA: result TYPE I,
      real_table TYPE STANDARD TABLE OF str_table,
      wa_real_table TYPE str_table,
      old_real_table TYPE STANDARD TABLE OF str_table WITH HEADER LINE.

wa_real_table-field1 = 'Поле 1'.
wa_real_table-field2 = 'Поле 2'.
APPEND wa_real_table TO old_real_table.
*READ TABLE old_real_table.
LOOP AT old_real_table.
WRITE:/ old_real_table-field1, old_real_table-field2.
ENDloop.

CALL FUNCTION 'ZZ_V_TESTF'
EXPORTING
avariable = a
bvariable = b
  IMPORTING
function_result = result
  EXCEPTIONS
   NULLDIVISION = 1.

CASE sy-subrc.
WHEN 0.
  WRITE: / 'Программа завершилась нормально'.
   WHEN 1.
    WRITE: / 'Что-то пошло не так'.
ENDCASE.



Code:
FUNCTION zz_v_testf.

  function_result = avariable / bvariable.
  IF ( bvariable = 0 ) .
    RAISE nulldivision.
   ELSE.
    WRITE: / 'This is', function_result.
  ENDIF.


ENDFUNCTION.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Невозможно обработать исключение в Z-ФМ
СообщениеДобавлено: Ср, авг 17 2022, 09:30 
Специалист
Специалист

Зарегистрирован:
Вт, июн 10 2014, 09:41
Сообщения: 179
saphir написал(а):
Code:
FUNCTION zz_v_testf.
" Вот тут будет стандартное исключение деления на ноль
  function_result = avariable / bvariable.

" До этого кода дело даже не дойдёт
  IF ( bvariable = 0 ) .
    RAISE nulldivision.
   ELSE.
    WRITE: / 'This is', function_result.
  ENDIF.
ENDFUNCTION.

Само деление надо делать же после проверки. У вас другая системная исключительная ситуация деления на ноль получается, а не ваша nulldivision.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Невозможно обработать исключение в Z-ФМ
СообщениеДобавлено: Ср, авг 17 2022, 10:34 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, июл 01 2022, 13:42
Сообщения: 62
спасибо


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

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


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

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


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

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