Каков хороший вариант использования uncaught_exception?





Херб Саттер, кажется, дает хороший совет здесь. Он не знает, как это хорошо использовать, и говорит, что некоторые случаи, когда это кажется полезным, на самом деле не работают.
uncaught_exception можно использовать в деструкторах, чтобы определить, выполняются ли они в контексте исключения (когда бросок завершает программу). Я не возражаю, что эта философия немного ошибочна, но это зависит от того, как вы используете исключения - если ваше исключение является исправимой ошибкой, может быть удобнее просто попытаться исправить ее, чем позволить другой части кода попытаться исправить это. справляйтесь с этим, как обычно.
Это также полезно, если у вас есть код, требующий активного исключения (это редко, но иногда у вас есть библиотека управления исключениями, которая будет использовать throw; для получения текущего исключения, но это вызовет завершение, если его нет, поэтому uncaught_exception может быть используется, чтобы определить, будет ли это прервано (и если да, возможно, вызовет исключение!). Примером являются новые средства исключения, которые также являются частью ускорения.