#windows #visual-c #com #error-handling
#Windows #visual-c #com #обработка ошибок
Вопрос:
Предположим, у меня не очень хорошо спроектированный COM-интерфейс, и некоторые классы просто логически не могут реализовать один из его методов.
Например, есть такой метод, как Explode()
и многие классы просто не могут разумно «взорваться», но все равно должны реализовать этот метод и должны вернуть соответствующий код ошибки.
Возвращаюсь ли я E_NOTIMPL
в таких случаях? Для меня этот код означает «еще не реализовано, проверьте еще раз в версии 2.0″. Следует ли его также использовать, когда метод постоянно не реализуется классом по какой-либо серьезной причине проектирования?
Ответ №1:
Вы, конечно, могли бы добавить свой собственный HRESULT
для этого, но, на мой взгляд, возврат E_NOTIMPL
в этом случае вполне допустим. Насколько я понимаю, это никогда не E_NOTIMPL
подразумевало намерение реализовать на более позднем этапе.