|
![]() |
#1 |
Участник
|
Цитата:
Сообщение от petr
![]() То, что этот метод статический, удобно использовать при проверке входных условий при вызове класса в main. Если какое-либо условие не выполняется, то можно вывести сообщение об ошибке без инициализации класса (которая невозможна при неправильных входных данных), т.е. не надо копировать метку из description в сообщение об ошибке
Хотя в стандарте туда часто передают funcname(), но мне кажется, что MyClass::description() в данном случае информативнее. А создавать для этого исключения специально отдельную метку лениво. |
|
![]() |
#2 |
Участник
|
Цитата:
Сообщение от gl00mie
![]() Проверка входных условий в main() редко может проходить неуспешно в ходе штатного вызова этого метода класса. А потому информация об ошибке должна быть рассчитана не столько на пользователя, сколько на разработчика, которому classstr(MyClass) скажет гораздо больше, чем какая-то там метка, возвращаемая из description(). Так что использование в стандарте той же funcname() несет больше информации для тех, кому она необходима, - для разработчиков и специалистов службы поддержки. А пользователям обычно без разницы, не передан в метод активный буфер, не то там значение enum'а или еще что; главное - что оно не работает, и сам пользователь с этим мало что может сделать.
Может это и не лучшее решение, но и classstr(MyClass) немногим лучше. Кроме того, в пользу моего решение - то что текст будет на языке пользователя (он хоть сможет прочитать его), а не на английском. Да и название класса, одной строкой под 30 символов не очень читабельно. Уже бывали случаи, когда пользователи по 5 минут по телефону объясняли, что за ошибка (пытались прочитать). Но в тоже время скриншот (что подавляющее бол-во пользователей умеет делать) решает все проблемы. Вообщем, по мне так тут все решения равносильные. Главное, чтобы сообщение было и хотя с намеком на какой-либо смысл. |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|