Q:

C++ Exceptional Handling | Find output programs | Set 2

belongs to collection: C++ find output programs

0

This section contains the C++ find output programs with their explanations on C++ Exceptional Handling (set 2).

Program 1:

#include <iostream>
#include <exception>
using namespace std;

void funDiv(int X, int Y)
{
    int res = 0;

    if (Y == 0) {
        bad_exception E;
        throw E;
    }

    res = X / Y;
    cout << res << endl;
}

int main()
{
    try {
        int num1 = 10;
        int num2 = 0;

        funDiv(num1, num2);
    }
    catch (exception e) {
        cout << "Exception generated";
    }
    return 0;
}

Program 2:

#include <iostream>
#include <exception>
using namespace std;

void funDiv(int X, int Y)
{
    int res = 0;

    if (Y == 0) {
        exception E;
        throw E;
    }

    res = X / Y;
    cout << res << endl;
}

int main()
{
    try {
        int num1 = 10;
        int num2 = 0;

        funDiv(num1, num2);
    }
    catch (bad_exception e) {
        cout << "Exception generated1";
    }
    catch (...) {
        cout << "Exception generated2";
    }
    return 0;
}

Program 3:

#include <iostream>
#include <exception>
using namespace std;

void funDiv(int X, int Y)
{
    int res = 0;

    res = X / Y;
    cout << res << endl;
}

int main()
{
    try {
        int num1 = 10;
        int num2 = 0;

        funDiv(num1, num2);
    }
    catch (...) {
        cout << "Exception generated2";
    }
    return 0;
}

Program 4:

#include <iostream>
#include <exception>

using namespace std;

class UserException : public exception {
public:
    const char* message() const throw()
    {
        return "My User Exception";
    }
};

int main()
{
    try {
        throw UserException();
    }
    catch (UserException E) {
        cout << E.message();
    }
    return 0;
}

Program 5:

#include <iostream>
#include <exception>

using namespace std;

struct UserException : public exception {
    const char* message() const throw()
    {
        return "My User Exception";
    }
};

int main()
{
    try {
        throw UserException();
    }
    catch (UserException E) {
        cout << E.message();
    }
    return 0;
}

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

Answer Program 1:

Output:

Exception generated

Explanation:

Here, we defined a function funDiv() with two arguments X and Y. We checked if the value of Y is 0 then it will throw an object of bad_exception class using the "throw" keyword that will be caught by the "catch" block.

Here, we also used "exception" class in the catch block and thrown object of bad_exception class. It will work fine because the "exception" class is the superclass of all exception related classes. 

In the main() function, we declared local variables num1 and num2 inside the “try” block, and call funDiv() function to perform division.

The exception object was thrown by funDiv() function, caught by the "catch" block, and print the message using cout on the console screen.

Answer Program 2:

Output:

Exception generated2

Explanation:

Here, we defined a function funDiv() with two arguments X and Y. We checked if the value of Y is 0 then it will throw an object of exception class using the "throw" keyword that will be caught by the "catch" block.

We also used two catch blocks, the first catch block will catch the object of bad_exception class, and the second catch block "catch(…)" is a global catch block, then it will receive all types of exceptions.

Answer Program 3:

Output:

Floating point exception

Explanation:

It will crash at runtime because here we did not handle the "divide by zero" exception.

The global catch block "catch(…)" will catch only those exceptions that are thrown by the "throw" keyword. So we need to handle the exception and throw using the "throw" keyword.

Answer Program 4:

Output:

My User Exception

Explanation:

Here, we created a class UserException which is inherited by the "exception" class, and we defined the member function message() inside the class UserException. The message() function returns the message "My User Exception".

In the main() function, we have thrown an object of UserException class, which is caught by the catch block. Here we printed the message returned by message () function.

Answer Program 5:

Output:

My User Exception

Explanation:

Here, we created a structure UserException which is inherited by the "exception" class, and we defined the member function message() inside the structure UserException. The message() function returns the message "My User Exception".

In the main() function, we have thrown an object of UserException structure, which is caught by the catch block. Here we printed the message returned by message () function.

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

C++ find output programs

This question belongs to these collections

Similar questions


need a help?


find thousands of online teachers now
C++ Exceptional Handling | Find output programs | ... >>
<< C++ Exceptional Handling | Find output programs | ...