ИМХО, проверяемые исключения лучше тем, что код получается самодокументируемым + можно по сигнатуре понять какие исключения бросает метод, а с непроверяемыми так не сделаешь, надейся на документацию, которой может и не быть.
пишешь шифрование
@
надо раз(за)вернуть одноразовый симметричный ключ
@
в сигнатуре 4 разных чекед-экепшена, все из которых значат ошибку ввода-вывы
ода в том или ином роде