AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.03.2006, 15:21   #1  
korvin is offline
korvin
Участник
Аватар для korvin
 
29 / 10 (1) +
Регистрация: 16.01.2006
Адрес: Липецк
Почему может не ловиться исключение
Почему может не ловится исключение?
Окошко инфолога выбрасывается а в catch не попадаем ни при каких условиях. Режимы отладки пробовал устанавливать все - не помогает.

Connection con = new Connection();
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(text);
try {
while( rs.next() ){ // здесь выбрасывается исключение Error
....
.....
}
}
catch( Exception::Break ){
info("Exception::Break");
}
catch( Exception:DEerror ){
info("Exception:DEerror");
}
catch( Exception:eadlock ){
info("Exception:eadlock");
}
catch( Exception::Error ){
info("Exception::Error");
}
catch( Exception::Info ){
info("Exception::Info");
}
catch( Exception::Internal ){
info("Exception::Internal");
}
catch( Exception::Numeric ){
info("Exception::Numeric");
}
catch( Exception::Sequence ){
info("Exception::Sequence");
}
catch( Exception::Warning ){
info("Exception::Warning");
}
catch {
info("Exception::Unknown");
}
__________________
Все люди равны, но некоторые равнее...

Последний раз редактировалось korvin; 14.03.2006 в 16:15.
Старый 14.03.2006, 17:08   #2  
Lucky13 is offline
Lucky13
Участник
1C
 
674 / 155 (7) ++++++
Регистрация: 21.10.2004
Адрес: Воронеж
Некоторые исключения, выбрасываемые COM объектами Аксапта не ловит. У меня так было много раз. Как лечить пока не знаю
Старый 14.03.2006, 17:23   #3  
korvin is offline
korvin
Участник
Аватар для korvin
 
29 / 10 (1) +
Регистрация: 16.01.2006
Адрес: Липецк
После долгих пыток выяснил следующее:
ловится исключение толко если блок try ... catch
начинается вне перед стартом транзакции
но появление окна инфолога это не лечит.

Неужели никто не знает как его отключить...
__________________
Все люди равны, но некоторые равнее...
Старый 14.03.2006, 17:26   #4  
korvin is offline
korvin
Участник
Аватар для korvin
 
29 / 10 (1) +
Регистрация: 16.01.2006
Адрес: Липецк
Всё победил: надо в настройках пользователя Уровень детализации инфолога изменить.
__________________
Все люди равны, но некоторые равнее...
Старый 30.03.2006, 05:04   #5  
Romb is offline
Romb
Участник
Аватар для Romb
 
79 / 22 (1) +++
Регистрация: 06.01.2004
Отключить инфолог конечно способ, но не всегда нужно лишать пользователя возможности видеть сообщения.

По мотивам какого-то обсуждения на этом форуме я сделал так.
Добавил к классу Info параметр-флаг locked.
В info.add добавил проверку на флаг:
Код:
if (this.parmLocked())
        return _exception;
В коде, где есть подозрение, что будет exception выключаю флаг, а потом включаю. В итоге получается обрабатывать исключения именно в моем блоке кода.
Старый 19.09.2006, 16:49   #6  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,605 / 5325 (185) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от korvin Посмотреть сообщение
После долгих пыток выяснил следующее: ловится исключение толко если блок try ... catch начинается вне перед стартом транзакции но появление окна инфолога это не лечит. Неужели никто не знает как его отключить...
Сейчас ковырялся с DLL/DLLFunction и наткнулся на ту же фигню: успешно ловлю исключение Exception::Internal, но сообщение infolog все равно появляется. Вылечилось до удивления просто:
PHP код:
catch (Exception::Internal)
{
    
infolog.clear();

Здесь при обработке исключения infolog будет очищен и не появится вовсе. В более затейливом сценарии, если какие-то сообщения инфолога надо все-таки сохранить, можно сделать так:
PHP код:
int nlines 0;
;
info("blah-blah-blah");         // выводим информативное сообщение      
setprefix("prefix");                                                    
warning("blah-blah");           // ...и еще одно                        
try                                                                     
{                                                                       
    
setprefix("prefix2");       // префиксы сообщений нормально работают
    
error("blah");              // эту ошибку надо обязательно показать 
    
nlines infolog.line();    // запомним, сколько строк оставить
    // далее может генериться Exception::Internal
    // но мы его видеть не хотим
}
catch (
Exception::Internal)
{
    
infolog.clear(nlines);      // оставить только nlines строк

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DAX 4 SP1 Счет-фактура не может включать различные ставки НДС Daiver DAX: Функционал 3 01.10.2007 15:31
Фин отчеты: может ли работать по нескольким компаниям сразу Arahnid DAX: Функционал 3 30.05.2007 17:46
Почему не дает проставлять инв.номер ОС через закупку? Pismarkina DAX: Функционал 5 03.11.2006 15:49
Почему то Сводное планирование начало занимать в три раза больше времени? Hidden DAX: Функционал 7 29.09.2006 16:28
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:43.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.