Open In App

How to Throw a Custom Exception in C++?

Last Updated : 02 Jun, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

In C++, exception handling is done by throwing an exception in a try block and catching it in the catch block. We generally throw the built-in exceptions provided in the <exception> header but we can also create our own custom exceptions.

In this article, we will discuss how to throw a custom exception in C++.

Throwing Custom Exceptions in C++

To throw a custom exception, we first have to create a custom exception class. This class inherits the std::exception class from <exception> header. We override the what() method of this class to provide a custom error message.

The last step is to use this user-defined custom exception in our code. The below method demonstrates how to do it.

C++ Program to Throw a Custom Exception

C++
#include <bits/stdc++.h>
using namespace std;

// Define a new exception class that
// inherits from std::exception
class MyException : public exception {
private:
    string message;
public:

    // Constructor accepting const char*
    MyException(const char* msg) :
    message(msg) {}

    // Override what() method, marked
    // noexcept for modern C++
    const char* what() const noexcept {
        return message.c_str();
    }
};

int main() {
    try {
        
        // Throw custom exception with
        // const char*
        throw MyException("This is a custom exception");
    }
    
    // Catch by const reference (good practice)
    catch (const MyException& e) {
        printf("Caught an exception: %s\n",
        e.what());
    }
    return 0;
}

Output
Caught an exception: This is a custom exception

Next Article

Similar Reads