Определение типа исключения после его обнаружения?

Фактически вы можете определить exception-handling тип внутри catch (...), но exception-handling это не очень полезно:

#include 
#include 

    class E1 : public std::exception {};
    class E2 : public std::exception {};

    int main() {
        try {
            throw E2();
        }
        catch( ... ) {
            try {
                throw;
            }
            catch( const E1 & e ) {
                std::cout << "E1\n";
            }
            catch( const E2 & e ) {
                std::cout << "E2\n";
            }
        }
    }

c++

exception

exception-handling

2022-11-09T00:50:15+00:00