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