User-Defined Exceptions
The new exception can be defined by overriding and inheriting exception class functionality.
Let’s see the simple example of user-defined exception in which std::exception class is used to define the exception.
#include <iostream>
#include <exception>
using namespace std;
class MyException : public exception{
public:
const char * what() const throw()
{
return “Attempted to divide by zero!\n”;
}
};
int main()
{
try
{
int x, y;
cout << “Enter the two numbers : \n”;
cin >> x >> y;
if (y == 0)
{
MyException z;
throw z;
}
else
{
cout << “x / y = ” << x/y << endl;
}
}
catch(exception& e)
{
cout << e.what();
}
}
Output:
Enter the two numbers : 10 2 x / y = 5
Output:
Enter the two numbers : 10 0 Attempted to divide by zero!
Note: In above example what() is a public method provided by the exception class. It is used to return the cause of an exception.