Rules of Thumb for Designing Exception Classes

When designing an exception class, think of it as a standalone class with data members and member functions. A well-designed exception class should have a member function that returns a verbal description of the exception. In applications that use error codes, you should also include a member function that returns the exception’s numeric code. This way, the handler of that exception doesn’t need to look for this information elsewhere; it can retrieve it from the exception object directly.

   class myException  {  // ..stuff  public:    const char * description() const;    int code_number() const;  };  catch( myException & ex)  {    cout<<" error occurred: "<< ex.description();    cout&lt&lt "with code: " << ex.code_number();   }

Remember also that sometimes the same exception can be thrown in similar but not identical situations. For example, a DBMS system can throw the same exception when it encounters a referential integrity problem or an attempt to insert a duplicate key. To distinguish between these errors, the handler can query the exception object and obtain a precise description of the actual error that occurred.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: