Пытаюсь получить в одном из методов кода экземпляр объекта Cipher:
1 2 3 |
public void encode(recordData rd, String pass) { Cipher encipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); } |
Eclipse отмечает на полях ошибки:
Первая моя реакция как новичка — о! че то в системе не хватает, надо доустановить, т.к. вдуматься в смысл сообщения сразу не удаётся, перед глазами лишь висят зловещие — NoSuchPaddingException и NoSuchAlgorithmException. На самом деле компилятор вас предупреждает, что требуется объявить наличие соответствующих run-time исключений.
Добавляем необходимые объявления
Остаётся лишь предупреждение о неиспользованной объявленной переменной, а в заголовок класса добавляются соответствующие классы.
1 2 3 |
import java.security.NoSuchAlgorithmException; import javax.crypto.NoSuchPaddingException; import javax.crypto.Cipher; |
При таком объявлении функции, в точке вызова необходимо будет дописать конструкции try — catch. Можно их вставить и вместе вызова конструктора класса Cipher, чтобы обработать исключения внутри функции encode.
1 2 3 4 5 6 7 8 9 10 11 12 |
Cipher encipher; try { encipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); ... } catch (NoSuchAlgorithmException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (NoSuchPaddingException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } |
Порою приходится писать о таких банальных вещах, но люди интересуются в форумах, а гуру им ответить не могут, т.к. не могут и предположить подобных трудностей в общении с компилятором у новичков, вроде меня.