I am working on a small c++ program and learning exceptions. Is the following code \"bad\", and if so, what can I do to improve it?
try {
// code
if
It is much better to throw a standard exception object. In general, the best practice is to throw something derived from std::exception
so that if in some situation it does cause your program to terminate, the implementation has a better chance of printing a useful diagnostic.
Because it isn't hard to do this, I would never recommend throwing a raw string literal.
#include <stdexcept>
void someFunction()
{
try {
// code
if (some error) {
throw std::runtime_error( "Description of error." );
}
}
catch (const std::exception& ex) {
std::cerr << ex.what() << "\nFatal error" << std::endl;
}
}