2015-08-17 1 views
2

Я могу вызвать MessageDigest как локальную переменную в методе main() моего кода, но всякий раз, когда я пытаюсь создать полевую переменную MessageDigest в классе, и попробуйте инициализировать его в конструкторе, он выдает исключение NoSuchAlgorithm.messagedigest object throws NoSuchAlgorithm при использовании в качестве поля/статической переменной в java

У меня возникает ощущение, что мы просто не можем создавать объекты MessageDigest, подобные этому. Это правда?

В принципе, this is что я сделал. Я хочу использовать это как переменную поля, а не локальную переменную.

+3

Укажите точный код, который вы пробовали. Тогда люди смогут сказать, почему произошла ошибка. – Codebender

+0

Исключения выбрасываются, а не возвращаются. – EJP

ответ

1

Вы правы. Из-за того, что это исключение объявлено брошенным, единственный способ инициализировать объект MessageDigest в качестве переменной-члена - либо с помощью конструктора, либо с этим исключением, либо с конструктором или инициализатором, который содержит соответствующий блок try/catch. В противном случае он не будет компилироваться.

+0

Ну, очень близко к тому, как я понял, на самом деле это действительно бросало исключение, которое нужно было поймать. – khanna