Exceptions
Try Catch Basics
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.