Показать сообщение отдельно
Старый 21.01.2008, 22:51   #1  
petr is offline
petr
Участник
Соотечественники
 
561 / 201 (8) ++++++
Регистрация: 30.05.2005
Адрес: Швейцария
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Проверка входных условий в main() редко может проходить неуспешно в ходе штатного вызова этого метода класса. А потому информация об ошибке должна быть рассчитана не столько на пользователя, сколько на разработчика, которому classstr(MyClass) скажет гораздо больше, чем какая-то там метка, возвращаемая из description(). Так что использование в стандарте той же funcname() несет больше информации для тех, кому она необходима, - для разработчиков и специалистов службы поддержки. А пользователям обычно без разницы, не передан в метод активный буфер, не то там значение enum'а или еще что; главное - что оно не работает, и сам пользователь с этим мало что может сделать.
Я согласен, просто мне и так хватит минуты узнать какой класс вызывается. Вообще в этой проверке исходных данных, главное хоть какое-нибудь сообщение отправить, все равно пользователь к программисту побежит (хотя там сочинение написать). Поэтому когда стоял передо мной вопрос, какой паттерн использовать в данном случае, остановился на таком.

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

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

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