Этот, довольно простой, фрагмент кода довольно распространен при обработке шифрования/расшифровки на Java.
final Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding");
cipher.init(Cipher.ENCRYPT_MODE, key, iv);
cipher.doFinal(*something*);
Только эти три строки, возможно, исключают шесть исключений, и я не уверен, что самый чистый (с точки зрения удобочитаемости кода) способ обработки. Попробуйте шесть предложений catch, которые действительно выглядят как запах для меня.
Есть ли микропаттерны или лучшие практики, которых я, очевидно, не хватает, работая с такими объектами?
ИЗМЕНИТЬ
Извините, я думаю, что не очень хорошо себя объяснил. Мой вопрос заключается не в том, чтобы избежать предложения try\catch, но если есть общий способ справиться с подобными ситуациями.
Исключения составляют
NoSuchPaddingException, NoSuchAlgorithmException
InvalidAlgorithmParameterException, InvalidKeyException,
BadPaddingException, IllegalBlockSizeException