try and catch let code handle a problem without ending the program.

Try Catch Basics

try_catch_basics.cpp
#include <iostream>
#include <stdexcept>

int safeDivide(int numerator, int denominator) {
    if (denominator == 0) {
        throw std::runtime_error("divide by zero");
    }
    return numerator / denominator;
}

int main() {
    int numerator = ;
    int denominator = ;

    try {
        int result = safeDivide(numerator, denominator);
        std::cout << "result=" << result << std::endl;
    } catch (const std::runtime_error& error) {
        std::cout << "error=division" << std::endl;
    }

    std::cout << "done=1" << std::endl;
    return 0;
}
#include <iostream>
#include <stdexcept>

int safeDivide(int numerator, int denominator) {
    if (denominator == 0) {
        throw std::runtime_error("divide by zero");
    }
    return numerator / denominator;
}

int main() {
    int numerator = ;
    int denominator = ;

    try {
        int result = safeDivide(numerator, denominator);
        std::cout << "result=" << result << std::endl;
    } catch (const std::runtime_error& error) {
        std::cout << "error=division" << std::endl;
    }

    std::cout << "done=1" << std::endl;
    return 0;
}
#include <iostream>
#include <stdexcept>

int safeDivide(int numerator, int denominator) {
    if (denominator == 0) {
        throw std::runtime_error("divide by zero");
    }
    return numerator / denominator;
}

int main() {
    int numerator = ;
    int denominator = ;

    try {
        int result = safeDivide(numerator, denominator);
        std::cout << "result=" << result << std::endl;
    } catch (const std::runtime_error& error) {
        std::cout << "error=division" << std::endl;
    }

    std::cout << "done=1" << std::endl;
    return 0;
}
#include <iostream>
#include <stdexcept>

int safeDivide(int numerator, int denominator) {
    if (denominator == 0) {
        throw std::runtime_error("divide by zero");
    }
    return numerator / denominator;
}

int main() {
    int numerator = ;
    int denominator = ;

    try {
        int result = safeDivide(numerator, denominator);
        std::cout << "result=" << result << std::endl;
    } catch (const std::runtime_error& error) {
        std::cout << "error=division" << std::endl;
    }

    std::cout << "done=1" << std::endl;
    return 0;
}
#include <iostream>
#include <stdexcept>

int safeDivide(int numerator, int denominator) {
    if (denominator == 0) {
        throw std::runtime_error("divide by zero");
    }
    return numerator / denominator;
}

int main() {
    int numerator = ;
    int denominator = ;

    try {
        int result = safeDivide(numerator, denominator);
        std::cout << "result=" << result << std::endl;
    } catch (const std::runtime_error& error) {
        std::cout << "error=division" << std::endl;
    }

    std::cout << "done=1" << std::endl;
    return 0;
}
#include <iostream>
#include <stdexcept>

int safeDivide(int numerator, int denominator) {
    if (denominator == 0) {
        throw std::runtime_error("divide by zero");
    }
    return numerator / denominator;
}

int main() {
    int numerator = ;
    int denominator = ;

    try {
        int result = safeDivide(numerator, denominator);
        std::cout << "result=" << result << std::endl;
    } catch (const std::runtime_error& error) {
        std::cout << "error=division" << std::endl;
    }

    std::cout << "done=1" << std::endl;
    return 0;
}
#include <iostream>
#include <stdexcept>

int safeDivide(int numerator, int denominator) {
    if (denominator == 0) {
        throw std::runtime_error("divide by zero");
    }
    return numerator / denominator;
}

int main() {
    int numerator = ;
    int denominator = ;

    try {
        int result = safeDivide(numerator, denominator);
        std::cout << "result=" << result << std::endl;
    } catch (const std::runtime_error& error) {
        std::cout << "error=division" << std::endl;
    }

    std::cout << "done=1" << std::endl;
    return 0;
}
#include <iostream>
#include <stdexcept>

int safeDivide(int numerator, int denominator) {
    if (denominator == 0) {
        throw std::runtime_error("divide by zero");
    }
    return numerator / denominator;
}

int main() {
    int numerator = ;
    int denominator = ;

    try {
        int result = safeDivide(numerator, denominator);
        std::cout << "result=" << result << std::endl;
    } catch (const std::runtime_error& error) {
        std::cout << "error=division" << std::endl;
    }

    std::cout << "done=1" << std::endl;
    return 0;
}
#include <iostream>
#include <stdexcept>

int safeDivide(int numerator, int denominator) {
    if (denominator == 0) {
        throw std::runtime_error("divide by zero");
    }
    return numerator / denominator;
}

int main() {
    int numerator = ;
    int denominator = ;

    try {
        int result = safeDivide(numerator, denominator);
        std::cout << "result=" << result << std::endl;
    } catch (const std::runtime_error& error) {
        std::cout << "error=division" << std::endl;
    }

    std::cout << "done=1" << std::endl;
    return 0;
}
try catch Code inside a `try` block runs normally until an exception is thrown. A matching `catch` block handles the exception.