| | |
Exceptions
Please support our C++ advertiser: Intel Parallel Studio Home
![]() |
•
•
Join Date: Sep 2006
Posts: 38
Reputation:
Solved Threads: 1
Exceptions
I am working on a class project as layed out by the instructor. This is in conjunction with Chapter 13 (Exceptions) from the book How To Program in C++ by Deitle 4/e. I am at a total loss on this subject. I thought that catching problems was up to the compiler. I have included Figure 13.1 for an example as per instructions and some code I have been working on. Could someone please look this over and help me get my brain around exceptions or at least this project?
Here is the instructions and code I'm trying to use.
Any help greatly appreciated. Thanks
I am working on a class project as layed out by the instructor. This is in conjunction with Chapter 13 (Exceptions) from the book How To Program in C++ by Deitle 4/e. I am at a total loss on this subject. I thought that catching problems was up to the compiler. I have included Figure 13.1 for an example as per instructions and some code I have been working on. Could someone please look this over and help me get my brain around exceptions or at least this project?
C++ Syntax (Toggle Plain Text)
// Fig. 13.1: fig13_01.cpp // A simple exception-handling example that checks for // divide-by-zero exceptions. Code: #include <iostream>using std::cout;using std::cin;using std::endl;#include <exception>using std::exception;// DivideByZeroException objects should be thrown by functions// upon detecting division-by-zero exceptionsclass DivideByZeroException : public exception {public: // constructor specifies default error message DivideByZeroException::DivideByZeroException() : exception( "attempted to divide by zero" ) {}}; // end class DivideByZeroException// perform division and throw DivideByZeroException object if // divide-by-zero exception occursdouble quotient( int numerator, int denominator ){ // throw DivideByZeroException if trying to divide by zero if ( denominator == 0 ) throw DivideByZeroException(); // terminate function // return division result return static_cast< double >( numerator ) / denominator;} // end function quotientint main(){ int number1; // user-specified numerator int number2; // user-specified denominator double result; // result of division cout << "Enter two integers (end-of-file to end): "; // enable user to enter two integers to divide while ( cin >> number1 >> number2 ) { // try block contains code that might throw exception // and code that should not execute if an exception occurs try { result = quotient( number1, number2 ); cout << "The quotient is: " << result << endl; } // end try // exception handler handles a divide-by-zero exception catch ( DivideByZeroException ÷ByZeroException ) { cout << "Exception occurred: " << divideByZeroException.what() << endl; } // end catch cout << "\nEnter two integers (end-of-file to end): "; } // end while cout << endl; return 0; // terminate normally} // end main
Here is the instructions and code I'm trying to use.
C++ Syntax (Toggle Plain Text)
/*Create a program that defines three user defined exception classes (called ExceptionOne, ExceptionTwo, and ExceptionThree - with the messages being the same as the name - see Figure 13.1 for an example). The program should have a loop with a menu with four selections - Option 1 will throw ExceptionOne, Option 2 ExceptionTwo, Option 3 ExceptionThree , and Option 4 to exit. The catch block should only catch the first two exceptions explicitly with the last exception caught generically. Make sure the switch logic is inside a try block followed by three catch blocks. ///////////////////////////////////////////////////////////////////////////////*/ Code: #include <iostream>#include <exception>#include <ctime>using std::cout;using std::cin;using std::endl;class BaseException {public: // constructor specifies default error message ExceptionOne::BaseException () : ExceptionOne }// end class class ExceptionOne: public BaseException {public: ExceptionOne::ExceptionOne() :ExceptionOne}// end classclass ExceptionTwo: public ExceptionOne {public: // constructor specifies default error message ExceptionTwo::ExceptionTwo() : ExceptionTwo} // end class class ExceptionThree: public ExceptionTwo {public: ExceptionThree::ExceptionThree() :ExceptionThree}// end classint main(){
Any help greatly appreciated. Thanks
Last edited by WaltP; Feb 6th, 2007 at 2:56 pm. Reason: Added CODE tags -- not that it helped any...
![]() |
Similar Threads
- exceptions (Java)
- C++ / Exceptions (C++)
- Exceptions (repost) (C++)
- weird exceptions:( (Python)
- How to handle exceptions in constructor? (Java)
- Exceptions (Java)
- Arithmetic Exceptions and exception-handling statements (Java)
Other Threads in the C++ Forum
- Previous Thread: Creating a Command Line Parser
- Next Thread: prime number generator does nothing.
| Thread Tools | Search this Thread |
api array based binary c++ c/c++ calculator char char* class classes code coding compile console conversion database delete deploy desktop developer directshow dll download dynamic dynamiccharacterarray email encryption error file forms fstream function functions game givemetehcodez google graph gui homeworkhelp homeworkhelper iamthwee ifstream input int integer java lib linkedlist linker linux list loop looping loops map math matrix memory multiple news number numbertoword output parameter pointer problem program programming project python random read recursion recursive reference return rpg sorting string strings struct temperature template templates test text text-file tree unix url variable vector video visualstudio win32 windows winsock wordfrequency wxwidgets







Perhaps you could repost your code using line breaks? 