#include <iostream>
 
void f3()
{
}
void f2()
{
    try
    {
        f3();
    {
    }
}
 
struct Obj
{
    void fo()
    {
        try
        {
            f2();
        }catch(...)
        {
        }
    }
};
 
void f1()
{
    try
    {
        Obj x;
        x.fo();
    }catch (...)
    {
    }
}
 
#include <codecvt>
#include <locale>
#include <string>
 
template <class E>
void PrintNestedExceptions(E&& e, unsigned level = 1)
{
    try
    {
    {
        PrintNestedExceptions(ex, ++level);
    }catch(std::exception& ex)
    {
        std::wcout << 
std::wstring(level, L
' ') << std::wstring_convert<std::codecvt_utf8<wchar_t>>().from_bytes(ex.what()) << std::endl;
        PrintNestedExceptions(ex, ++level);
    }
}
 
int wmain(int argc, wchar_t **argv)
{
    try
    {
        f1();
    {
        std::wcout << L
"Exception caught: " << ex.
What() << std::endl;
        std::wcout << L"Nested exceptions (from top to bottom):\n";
        PrintNestedExceptions(ex);
    }
    return 0;
}
 
The file contains definitions of various exceptions thrown by the mechanisms of the chsvcode library ...
Defines a class of objects specifying various exceptions with extended support for description format...
Definition: chsvexception.h:392
virtual const wchar_t * What() const noexcept
Returns a description, corresponding to the exception, represented as a wide string.
Definition: chsvexception.h:573
A class template specifying a generic exception which has a corresponding integral error code.
Definition: chsvexception.h:588
code_t Code() const noexcept
Returns an error code, the exception object is bound with.
Definition: chsvexception.h:1395
void ChsvExceptionByPosixCode(errno_t nCode, const char *restrict pszDescription, DescriptionFormatParams ... format_params)
Creates an instance of the ChsvCodeExceptionTempl class and throws it as an exception....
Definition: chsvexception.h:4259
void rethrow_if_nested(E &&e)
Implements a behaviour of the standard std::rethrow_if_nested function checking if the most derived d...
Definition: chsvexception.h:5398
void throw_with_nested(E &&e)
Implements a behaviour of the standard std::throw_with_nested function storing an exception having be...
Definition: chsvexception.h:5375
std::basic_string< wchar_t, std::char_traits< wchar_t >, ::Chusov::Memory::allocator< wchar_t > > wstring
An instantiation of the standard basic_string class template for handling wide strings allocated and ...
Definition: chsvstringex.h:133
Access denied exception.
Definition: chsvexception.h:2412
Invalid parameter exception.
Definition: chsvexception.h:1741