Hi Rancher ,
First of all ,
You should thouroughly think about Exception Handling mechanism .
It is meant for errors and exceptions occured during developing program .
If
You can throw object of any class like
String , Integer or your custom class which can not do something special in horrible situataion .
catch block is provided to give you a chance to write some clean up code
if some exception occurs . Exception may or may not happen . It is not
ordinary block .
That is why , It accepts an object of Throwable or its sub type .
These classes provide special functionality to trace and clean up code
in case of exception .