невозможно (в C ++) перехватить все исключения в переносимой форме. Это потому, что некоторые исключения не являются исключениями в контексте C ++. Это включает в себя такие вещи, как деление на ноль ошибок и другие. Можно взломать и, таким образом, получить возможность генерировать исключения, когда такие ошибки случаются, но это нелегко сделать и, конечно же, нелегко получить правильную переносимость.
Если вы хотите перехватить все исключения STL, вы можете сделать
try { ... } catch( const std::exception &e) { ... }
Который позволит вам использовать e.what()
, который будет возвращать const char*
, который может рассказать вам больше о самом исключении. Это та конструкция, которая больше всего похожа на конструкцию Java.
Это не поможет вам, если кто-то настолько глуп, чтобы выдать исключение, которое не наследуется std::exception
.