If this book had 30 pages I would say great booklet, but in over 115 pages I have found a lot of fluff. Some information is quite useful most are authors views on how logging or exeption should be implemented in too verbose way.
some useful quotations:
Exception wrapping is often used if you cannot rethrow the original exception. For instance, if your method does not declare that it throws exceptions of the caught type. This could be the case if your method is an implementation of an interface method that does not declare that exception.
You should not use the Throwable class directly if you can avoid it. Below the Throwable class are the classes Exception and Error.
The Error class is used when errors occur that are caused by conditions which the application has no control over. For instance, if the JVM runs out of memory, an OutOfMemoryError is thrown. You should also avoid using the Error class.
The exception caught and rethrown in this example now contains the stack trace of where it was rethrown, instead of where it was originally created.
That makes methods towards the top of the call stack declare lots of different exceptions. Or, alternatively to just declare that they throw Exception, which defeats the purpose of declaring what exceptions a method throws.