// This rule specifies whether you are allowed
to throw
// Exceptions of type Exception.
// Exception is the base class of all exception and
// therefore very generic and not meaningfull. It is hard
// for the client to determine what went wrong. With
// specialized exception you know exactly what is going on.
// If this rule is enabled you have to throw subclasses of
// Exception.
// Throwing of Exception
public void print(String printer) throws Exception
{
...
// printer couldn't be found
throw new Exception("Printer not found");
...
// printer has no paper
throw new Exception("Printer has no paper");
...
}
// Throwing of specialized Exceptions
public void print(String printer) throws NoPrinterException,
OutOfPaperException
{
...
// printer couldn't be found
throw new NoPrinterException("Printer not found");
...
// printer has no paper
throw new OutOfPaperException("Printer has no paper");
...
}