56. Custom Exception class

By | September 27, 2021

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.

Leave a Reply

Your email address will not be published. Required fields are marked *