Exceptions
Throw Values
throw sends a value to a handler when a function cannot continue normally.
Throw Values
throw_values.cpp
#include <iostream>
#include <string>
std::string describeLevel(int level) {
if (level < 1) {
throw std::string("level too low");
}
return "level=" + std::to_string(level);
}
int main() {
int level = ;
try {
std::string message = describeLevel(level);
std::cout << message << std::endl;
} catch (const std::string& message) {
std::cout << "caught=" << message << std::endl;
}
std::cout << "checked=1" << std::endl;
return 0;
}
#include <iostream>
#include <string>
std::string describeLevel(int level) {
if (level < 1) {
throw std::string("level too low");
}
return "level=" + std::to_string(level);
}
int main() {
int level = ;
try {
std::string message = describeLevel(level);
std::cout << message << std::endl;
} catch (const std::string& message) {
std::cout << "caught=" << message << std::endl;
}
std::cout << "checked=1" << std::endl;
return 0;
}
#include <iostream>
#include <string>
std::string describeLevel(int level) {
if (level < 1) {
throw std::string("level too low");
}
return "level=" + std::to_string(level);
}
int main() {
int level = ;
try {
std::string message = describeLevel(level);
std::cout << message << std::endl;
} catch (const std::string& message) {
std::cout << "caught=" << message << std::endl;
}
std::cout << "checked=1" << std::endl;
return 0;
}
throw
A thrown value leaves the current function and looks for a matching `catch` block.