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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.01.2008, 22:24   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от petr Посмотреть сообщение
То, что этот метод статический, удобно использовать при проверке входных условий при вызове класса в main. Если какое-либо условие не выполняется, то можно вывести сообщение об ошибке без инициализации класса (которая невозможна при неправильных входных данных), т.е. не надо копировать метку из description в сообщение об ошибке
Хотя в стандарте туда часто передают funcname(), но мне кажется, что MyClass::description() в данном случае информативнее. А создавать для этого исключения специально отдельную метку лениво.
Проверка входных условий в main() редко может проходить неуспешно в ходе штатного вызова этого метода класса. А потому информация об ошибке должна быть рассчитана не столько на пользователя, сколько на разработчика, которому classstr(MyClass) скажет гораздо больше, чем какая-то там метка, возвращаемая из description(). Так что использование в стандарте той же funcname() несет больше информации для тех, кому она необходима, - для разработчиков и специалистов службы поддержки. А пользователям обычно без разницы, не передан в метод активный буфер, не то там значение enum'а или еще что; главное - что оно не работает, и сам пользователь с этим мало что может сделать.
Старый 21.01.2008, 22:51   #2  
petr is offline
petr
Участник
Соотечественники
 
561 / 201 (8) ++++++
Регистрация: 30.05.2005
Адрес: Швейцария
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Проверка входных условий в main() редко может проходить неуспешно в ходе штатного вызова этого метода класса. А потому информация об ошибке должна быть рассчитана не столько на пользователя, сколько на разработчика, которому classstr(MyClass) скажет гораздо больше, чем какая-то там метка, возвращаемая из description(). Так что использование в стандарте той же funcname() несет больше информации для тех, кому она необходима, - для разработчиков и специалистов службы поддержки. А пользователям обычно без разницы, не передан в метод активный буфер, не то там значение enum'а или еще что; главное - что оно не работает, и сам пользователь с этим мало что может сделать.
Я согласен, просто мне и так хватит минуты узнать какой класс вызывается. Вообще в этой проверке исходных данных, главное хоть какое-нибудь сообщение отправить, все равно пользователь к программисту побежит (хотя там сочинение написать). Поэтому когда стоял передо мной вопрос, какой паттерн использовать в данном случае, остановился на таком.

Может это и не лучшее решение, но и classstr(MyClass) немногим лучше. Кроме того, в пользу моего решение - то что текст будет на языке пользователя (он хоть сможет прочитать его), а не на английском. Да и название класса, одной строкой под 30 символов не очень читабельно.

Уже бывали случаи, когда пользователи по 5 минут по телефону объясняли, что за ошибка (пытались прочитать). Но в тоже время скриншот (что подавляющее бол-во пользователей умеет делать) решает все проблемы.

Вообщем, по мне так тут все решения равносильные. Главное, чтобы сообщение было и хотя с намеком на какой-либо смысл.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Передача в Веб-форму объекта в качестве параметра IvanS DAX: Программирование 4 17.04.2008 15:07
Передача параметра laxer DAX: Программирование 2 19.01.2006 09:08
Передача массива как параметра DreamCreator DAX: Программирование 1 26.01.2005 16:58
Передача параметра из формы в отчет liza DAX: Программирование 1 29.09.2003 14:04
Передача параметра в репорт 2 Андре DAX: Программирование 1 29.08.2002 14:09
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 06:30.