|
|
#1 |
|
Участник
|
ChangeCompany Try...Catch
AXAPTA 2.5 SP3
Можно ли перехватить по Try...Catch ошибку в ChangeCompany()? Т.е. когда указана не существующая компания. Что-то у меня не получается... PHP код:
AXAPTA 2.5 SP3 |
|
|
|
|
#2 |
|
Участник
|
в 3.0 вполне себе ловится, только в дебаггер вываливается, если открыт
X++: try { changecompany('test') { } } catch { info('catched'); } Последний раз редактировалось belugin; 11.12.2006 в 12:06. Причина: версия 3.0 |
|
|
|
|
#3 |
|
Участник
|
А зачем нужен catch? может просто перед попыткой сменить компанию проверять ее существование?
Код: if (! CompanyTmpCheck::exist('ХХХ'))
throw error('');
else
changeCompany('ХХХ')
{
...
} |
|
|
|
|
#4 |
|
Участник
|
Цитата:
Цитата:
|
|
|
|
|
#5 |
|
Участник
|
Я так понимаю, пофиксили в 3.0. А можно уточнить, какой именно "catch" (тип исключения) в 3.0 отлавливает эту ошибку? Какой exeption?
К сожалению, в 2.5 еще не было универсального catch. Обязательно нужно явно указывать тип исключения. |
|
|
|
|
#6 |
|
Участник
|
exception::Error
__________________
Axapta v.3.0 sp5 kr2 |
|
|
|
|
#7 |
|
Участник
|
|
|
|
|
|
#8 |
|
Участник
|
Цитата:
У меня такая же ситуация.............. Т.е. нужно проверять, есть ли такая компания и если есть, то перейти к ней. В версии 2.5 такую проверочную функцию не нашёл. Через exeptions тоже не удалось решить
|
|
|
|
|
#9 |
|
Участник
|
Пришлось делать проверку. В сообщении Gad приведено пример, который это делает.
Хотя назначение метода класса CompanyTmpCheck::exist(), судя по названию, это проверка того факта, что указанная компания не виртуальная, но можно использовать и для проверки факта существования компании. Или доработать код "под себя". Там обычный поиск записи в таблице \System Documentation\Tables\DataArea. Эта таблица содержит список вообще всех компаний. |
|
|
|
|
#10 |
|
Участник
|
Цитата:
\Classes\xDataArea\checkAccessible (для 3.0 привел ссылку) Так как если прав у пользователя нет, то changecompany выдаст ошибку даже в случае корректного кода компании. Последний раз редактировалось Logger; 12.01.2009 в 17:10. |
|
|
|
|
#11 |
|
Участник
|
Ловится но к сожалению не всегда.
Иногда вместо Exception::Error приходит Exception::Info Отладчик влияет на вид исключения Аналогично в Сom соединении регулярно вместо Exception: eadlock приходит Exception::InfoЕсть подозрение, что на это влияет настройка логирования длинных запросов SQL и дедлоков. |
|
|
|
|
Похожие темы
|
||||
| Тема | Ответов | |||
| TTS и try..catch | 7 | |||
| changeCompany() | 1 | |||
| catch | 3 | |||
| try...catch при операциях с таблицей | 1 | |||
| Глупый вопрос про try .. catch | 6 | |||
|