safe rational fractions

In week 4 we completed Chapter 13 Programming Exercise #10 Page 974. Make sure you have a working fractionType class before starting this assignment. The template requirement from week 4 is not required for this assignment.

Your assignment this week is to make your fractionType class safe by using exception handling.

Use exceptions so that your program handles the exceptions division by zero and invalid input.

  • An example of invalid input would be entering a fraction such as 7 / 0 or 6 / a
  • An example of division by zero would be: 1 / 2 / 0 / 3

Use a custom Exception class called fractionException. The class must inherit from exception (see example in lecture and note the entire class can be implemented in the .h file as in the lecture).

Test your safe fractionType class with a main method that forces an invalid fraction and a divide by zero. The catch block in the main method must report which kind of error was encountered – i.e. invalid fraction or divide by zero.

The following can be used to test an exception:

try {

fractionType<int> num1(1,0);

fractionType<int> num2(0,3);

fractionType<int> num3;

cout << fixed;

cout << showpoint;

cout << setprecision(2);

num3 = num1 / num2;

cout << num1 << ” / “ << num2 << ” = “ << num3 << endl;


catch (fractionException e) {

cout << “Exception caight in main: “ << e.what() << endl;


Submission Guidelines:

Submit modified fractionType class (.h and .cpp file if exists)

Submit fractionException class (.h file and .cpp file if exists)

Submit main test .cpp program to test the exception handling

Submit source code, a screenshot with a time stamp of code execution, and a text file of the code. All code should include comments.