Да, используя второй способ, вы можете использовать блок try ... catch и реагировать на исключения, когда, как и в первом случае, невозможно отловить объявленные исключения.
Существует также разница, когдав классе init выполняется статический блок fields и die, но у меня нет подробностей, см. спецификацию языка для создания экземпляров класса для получения дополнительной информации.
Greetz, GHad