Ну, это зависит от вашего приложения и проблемы, которую вы пытаетесь решить. Но в общем случае не стоит проглатывать неизвестные исключения. По крайней мере, я бы что-нибудь записал.
Редактировать : как отметил Ноа Робертс, единственное время, когда это может быть разумной идеей, - это разрушитель. Важно подавлять исключения в деструкторах, иначе вы можете иметь несколько активных исключений. Это может произойти, например, если выдается исключение, и в результате разматывания стека вызывается какой-то деструктор. Если этот деструктор выдает исключение, у вас будет 2 активных исключения. Затем C ++ вызовет std :: terminate (), что по умолчанию завершит вашу программу. Вы можете установить обработчик для этого условия, но, вероятно, вы мало что можете сделать, кроме как записывать происходящее.
Тем не менее, даже в деструкторе, вы, вероятно, должны регистрировать что-то внутри catch (...)
. Однако, в зависимости от того, какой это деструктор, у вас может не быть доступных средств ведения журнала. Но в большинстве случаев вы все равно можете использовать std::cerr
.