среда, 1 августа 2012 г.

exception: classification

Проверяемые/ Непроверяемые
Проверяемые(checked) -?. Проверяемыми исключениями являются Throwable, Exception и все их наследники не являющиеся при этом наследниками Error или RuntimeException.
Непроверяемые(unchecked) - эти исключения не надо включать в список throws метода, поскольку компилятор не проверяет факт обработки или передачи методом таких исключений. Непроверяемыми исключениями являются Error, RuntimeException и все их наследники (из JDK или созданные вами).

Синхронные / Асинхронные
2. синхронные/асинхронные (OOME?, ClassNotFoundError) - [javaspec "11.1.3 Asynchronous Exceptions"]
3. ?отложенное - InterruptedException

??? что будет при исключении в статическом инициализаторе? - откуда выскочит исключение? в каком состоянии класс? будет ли попытка повторной загрузки?

Вы можете создавать прямого наследника Throwable, но это считается крайне плохой практикой.
class StrangeSituation extends Throwable {}

Вы можете создавать прямого наследника Error или одного из его потомков, но это считается крайне плохой практикой.
class ? extends Error {}
class ? extends OutOfMemoryError {}