You should have a good deal of knowledge on the subject of Exceptions, where they are generated, your options in dealing with them, as well as the classes and subclasses involved in handling your Exceptions.
We will now use all of that information to start creating our own Exception Handlers which will extend Java's built in Exceptions and take advantage of their methods, as well as adding our own.

I will start with how to design the code segments, these are also available in the code snippets section I also used a similar version in the throwing tutorial, but i will better explain how they work, why they work and how to use them:

1) determine the Exception you wish to handle
2) determine an appropriate Exception class to extend, if there is none, you can write that too, or just extend Exception.

The testing code is very similar to the code from the last tutorial, just a simple name switch to the Exception we will be calling.Tester Class ExceptionTester:

It is not that difficult to create your own exceptions once you understand how to use them. It is simply a matter of a few lines of code, written in the correct order.

Here is the example I spoke of, I chose to write a Divide by Zero Exception, which will extend ArithmeticException, since it is an Arithmetic operation gone wrong. Although the existing Exception can determine if the operation was a divide by zero I will use this as my first example anyway.

Upon generating the Exception, it prints the text you send to super, which in this case is ArithmeticException, similar to throwing, but in this case the name of the exception is your declared name DivideByZeroException.

Other than that there is little more to know about writting your own exceptions. You can however add methods, which is uncommon, or override the methods provided to get your own meaning from them.