<< Chapter < Page Chapter >> Page >
Figure 10 . Example of a throw statement.
throw new myThrowableClass("Message");

If you attempt to throw an object that is not instantiated from Throwable or one of its subclasses, the compiler will refuse to compile your program.

Defining your own exception classes

Now you know how to write exception handlers for those exception objects that are thrown by the runtime system, and thrown by methods in the standard classlibrary.

It is also possible for you to define your own exception classes, and to cause objects of those classes to be thrown whenever an exception occurs. Inthis case, you get to decide just what constitutes an exceptional condition.

For example, you could write a data-processing application that processes integer data obtained via a TCP/IP link from another computer. If thespecification for the program indicates that the integer value 10 should never be received, you could use an occurrence of the integer value 10 to cause anexception object of your own design to be thrown.

Choosing the exception type to throw

Before throwing an exception, you must decide on its type. Basically, you have two choices in this regard:

  • Use an exception class written by someone else, such as the myriad of exception classes defined in the Java standard library.
  • Define an exception class of your own.

An important question

So, an important question is, when should you define your own exception classes and when should you use classes that are already available. Because thisis only one of many design issues, I'm not going to try to give you a ready answer to the question. However, I will refer you to The Java Tutorial by Campione and Walrath where you will find a checklist to help you make thisdecision.

Choosing a superclass to extend

If you decide to define your own exception class, it must be a subclass of Throwable . You must decide which class you will extend.

The two existing subclasses of Throwable are Exception and Error . Given the earlier description of Error and its subclasses, it is not likely that your exceptions would fit the Error category. (In concept, errors are reserved for serious hard errors that occur deep within thesystem.)

Checked or unchecked exception

Therefore, your new class should probably be a subclass of Exception . If you make it a subclass of RuntimeException , it won't be a checked exception. If you make it a subclass of Exception , but not a subclass of RuntimeException , it will be a checked exception.

Only you can decide how far down the Exception hierarchy you want to go before creating a new branch of exception classes that are unique to yourapplication.

Naming conventions

Many Java programmers append the word Exception to the end of all class names that are subclasses of Exception , and append the word Error to the end of all class names that are subclasses of Error .

One more sample program

Let's wrap up this module with one more sample program named Excep16 . We will define our own exception class in this program. Then we will throw , catch and process an exception object instantiated from that class.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Object-oriented programming (oop) with java. OpenStax CNX. Jun 29, 2016 Download for free at https://legacy.cnx.org/content/col11441/1.201
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Object-oriented programming (oop) with java' conversation and receive update notifications?

Ask