Код IT Загрузка примера кода…

C++ main.cpp
#include <iostream>
#include <stdexcept>

class DatabaseConnection {
    int connection_id;
public:
    explicit DatabaseConnection(int id) : connection_id(id) {
        std::cout << "Подключение к БД #" << id << " установлено.\n";
    }

    ~DatabaseConnection() {
        std::cout << "Подключение #" << connection_id << " закрыто.\n";
    }

    void query() {
        if (connection_id == 0) {
            throw std::runtime_error("Ошибка подключения");
        }
        std::cout << "Выполнение запроса...\n";
    }
};

void process_data() {
    DatabaseConnection conn(42);
    
    // Имитация ошибки после успешного создания объекта
    if (true) { 
        throw std::runtime_error("Сбой обработки данных");
    }
}

int main() {
    try {
        process_data();
    } catch (const std::exception& e) {
        std::cout << "Поймано исключение: " << e.what() << "\n";
    }
    return 0;
}
#include <iostream>
#include <stdexcept>

class DatabaseConnection {
    int connection_id;
public:
    explicit DatabaseConnection(int id) : connection_id(id) {
        std::cout << "Подключение к БД #" << id << " установлено.\n";
    }

    ~DatabaseConnection() {
        std::cout << "Подключение #" << connection_id << " закрыто.\n";
    }

    void query() {
        if (connection_id == 0) {
            throw std::runtime_error("Ошибка подключения");
        }
        std::cout << "Выполнение запроса...\n";
    }
};

void process_data() {
    DatabaseConnection conn(42);
    
    // Имитация ошибки после успешного создания объекта
    if (true) { 
        throw std::runtime_error("Сбой обработки данных");
    }
}

int main() {
    try {
        process_data();
    } catch (const std::exception& e) {
        std::cout << "Поймано исключение: " << e.what() << "\n";
    }
    return 0;
}