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