Не для их собственных целей, но если вы хотите использовать их так, как они изначально предназначались, то это нормально.
Ваш пример, возможно, разумное использование std::out_of_range
, но, к примеру, выдает std::bad_weak_ptr
не будет уместным. Ссылка для `std :: out_of_range гласит:
сообщает об ошибках, которые являются следствием попытки доступа к элементам вне определенного диапазона.
Так что, если вы собираетесь получить доступ к bar[5]
, тогда исключение уместно.
В конечном итоге, если вы создаете библиотеку, вам важно задокументировать, какие исключения вы выбрасываете и почему .