Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Сообщения об ошибках (число прочтений - 2372 )
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Сообщения об ошибках
14. Августа 2007 :: 06:07
Печать  
То ли просто уже достало то, что 1С не выдает стек вызовов при возникновении ошибки, то ли то, что 1С++ его выдает. Но уже достало искать, где на самом деле произошла ошибка, а не где о ней сообщила 1С.

Думаю, что кое-кто здесь знает, как достать этот стек вызовов, и при возникновении ошибки в обработке неотловленного исключения выдать его весь.

Артур, думаю, что ты - этот человек.  Улыбка
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сообщения об ошибках
Ответ #1 - 14. Августа 2007 :: 06:19
Печать  
Переходи на 2.5, в ней показан весь стек вызовов Улыбка
И при щелчке на нужной строчке из стека можно перейти в Конфигуратор Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Сообщения об ошибках
Ответ #2 - 14. Августа 2007 :: 06:25
Печать  
Речь идеть о тех случаях, когда оказывается не задействован механизм исключений 1С++.

То есть тогда, когда не было вызовов методов КОП.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сообщения об ошибках
Ответ #3 - 14. Августа 2007 :: 06:33
Печать  
Тогда дай какой-нибудь пример.
ЗЫ ИМХО если ошибка произошла где-то во вложенном вызове какой-то обработки, 1С выдает ошибку именно для нее, а не для верхней, активной формы.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Сообщения об ошибках
Ответ #4 - 14. Августа 2007 :: 06:43
Печать  
Все просто. Код в форме:
Код
Выбрать все
Процедура ПриНажатииКнопки()
	глПриНажатииКнопки(0);
КонецПроцедуры 



Код в глобальнике:
Код
Выбрать все
Функция ФункцияСОшибкой(х, у)
	Возврат х/у;
КонецПроцедуры

Процедура ЕщеОднаПроцедура(х, у)
	ФункцияСОшибкой(х, у);
КонецПроцедуры

Процедура глПриНажатииКнопки(мм)
	ЕщеОднаПроцедура(1, мм);
КонецПроцедуры 



В результате 1С выдает ошибку, которую потом хрен найдешь. Потому что она потерялась в цепочке вызовов.

И, порой, ищешь эту ошибку по полдня. А если попадется клиент, который базу не дает, то это может затянуться на неделю.

А делов то - выдать стек вызовов при возникновении ошибки...
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сообщения об ошибках
Ответ #5 - 14. Августа 2007 :: 06:47
Печать  
В коде 1С++ есть пример работы со стеком вызовов.
Правда, я не помню, как метод называется Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сообщения об ошибках
Ответ #6 - 14. Августа 2007 :: 08:35
Печать  
artbear писал(а) 14. Августа 2007 :: 06:19:
Переходи на 2.5, в ней показан весь стек вызовов Улыбка
И при щелчке на нужной строчке из стека можно перейти в Конфигуратор Улыбка


Не соглашусь, Артур. Сорри стек на самом деле показывается, но слишком поздно Улыбка

Сегодняшний живой пример: на форме активикс, в его событии (в классе) обращаюсь к несуществующему свойству одного из его свойств (Объект.Свойство.НесуществуещееСвойство). 1С проглатывает это и просто завершает исполнение события. Но ошибку показывает только после закрытия формы обработки (я так понимаю когда уничтожается класс). Такое бывает не со всеми активиксами/классами. Но если вылазит, то косяк просто выводит из себя Печаль
Не проси повторить, я и так уже протрахался с ним все утро Улыбка

P.S. Если только через пару дней
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сообщения об ошибках
Ответ #7 - 16. Августа 2007 :: 09:38
Печать  
Выждал пару дней, затаился Улыбка
А теперь жду пример Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать