Текущее время: Вс, июл 27 2025, 21:42

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Вызов исключения без указания его в сигнатуре
СообщениеДобавлено: Ср, мар 06 2013, 16:45 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, июн 12 2008, 16:54
Сообщения: 52
Добрый день,

Такая ситуация в методе класса вызывается исключение, не описанное в сигнатуре. Метод переопределен из вышестоящего(стандартного) класса.
Класс исключения cx_srm(вышестоящие cx_static_check и cx_root).

Чем может грозить такая ситуация?
Как я понимаю будет дамп если не вылавливать исключения с помощью try catch?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вызов исключения без указания его в сигнатуре
СообщениеДобавлено: Ср, мар 06 2013, 19:11 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Поделим на две части
1) то что не все исключения описаны в сигнатуре метода - это нормально. В сигнатуре рекомендуют, вроде бы, описывать только те исключения, которые важны для логики работы метода. Так, чтобы при проверке синтаксиса, в случае если исключения не ловятся, выдавалось бы предупреждение. Но бывают такие исключения, которые ловить не нужно. Это события из разряда "всем хана". Для них программа просто должна упасть.
2) то что исключение в вашем случае наследуется от cx_static_check - странно. По идее, это - как раз тот предок, от которого наследуются исключения, влияющие на стандарт. проверку из пункта 1.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вызов исключения без указания его в сигнатуре  Тема решена
СообщениеДобавлено: Чт, мар 07 2013, 19:07 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 351
MaaLL написал(а):
Чем может грозить такая ситуация?
Как я понимаю будет дамп если не вылавливать исключения с помощью try catch?
Если в методе было брошено исключение, и блока try-catch для перехвата этого исключения нет, будет дамп. Иначе – все отработает.
UPD. Глянул внимательнее. cx_srm - абстрактный класс. Как получается бросить исключение именно этого класса?
UPD2. А, нет, если не объявить в сигнатуре, при бросании исключения CX_STATIC_CHECK внутри метода, за пределами метода пофиг на блок try-catch, будет дамп.


Последний раз редактировалось LAT Чт, мар 07 2013, 20:39, всего редактировалось 2 раз(а).

Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Вызов исключения без указания его в сигнатуре
СообщениеДобавлено: Чт, мар 07 2013, 20:06 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 351
Кодер написал(а):
...бывают такие исключения, которые ловить не нужно. Это события из разряда "всем хана". Для них программа просто должна упасть.
"всем хана" - это обычно из иерархии CX_NO_CHECK (хотя и не обязательно).


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

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


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

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


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

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