Нет, ничто не мешает вам сделать это.
Однако, некоторый код, который хочет перехватить «любое исключение», поймает const std::exception&
, и если ваш тип исключения не является производным от std::exception
, тогдаэто не сработает.
Конечно, мы можем поймать ...
вместо этого, но, по моему опыту, оно используется как "тупой инструмент" последнего рывка для избежания завершения из-за неисследованных исключений, и не можетсказать вам что-нибудь о самом исключении.
Повышение исключений не происходит от std::exception
, и это действительно раздражает .
Почему бы не простосделать все исключения частью этой стандартной иерархии?
Если вы не намерены когда-либо позволять, чтобы ваши типы исключений доходили до самого верха, то здесь не может быть практической проблемы.Но зачем рисковать?Вы ничего не потеряете, добавив : std::runtime_error
или что-то подобное, и текстовая строка, которую вы передадите в базу, будет полезной информацией для программиста, диагностирующего диагноз.