2013-06-08 4 views
-2

У меня возникли проблемы с этим конкретным блоком try/catch. Он должен работать, но каждый раз, когда я вводил письмо, я все еще получаю NumberFormatException. Может ли кто-нибудь идентифицировать проблему с этим кодом?Операция Try/Catch не работает

  try { 
      if (convertToNum > 4) { 
      System.out.println("You entered a number that is too high"); 
      } 
      else if (convertToNum < 1) { 
      System.out.println("You entered a number that is too low"); 
      } 
      else { 
      System.out.println("You subtracted " + convertToNum + 
           " from the pile."); 
      } 
     } 
     catch (NumberFormatException e){ 
      System.out.println ("You entered an invalid number"); 
     } 
     return convertToNum; 
     } 
+3

В этом примере кода анализа чисел нет. Пожалуйста, предоставьте все остальное! – fge

+2

А? В вашем блоке 'try' нет ничего, что могло бы вызвать исключение. –

+2

Могу поспорить, что исключение вызывается _before_ блоком 'try', в коде, который анализирует строку в' convertToNum'. – Vlad

ответ

4

Что бы перебрасывает NumberFormatException не в try блоке ... неты вызовов методов (за пределами System.out.println) в там, вообще.

Поместите метод преобразования числа в блок try, и все будет в порядке.

+0

Нет, он отвечает на вопрос. Это ответ - правильный. –

+0

Я помещаю Integer.parseInt в строку, но теперь оператор return бесполезен ... –

+1

Если вы объявите 'convertToInt' внутри блока' try', тогда он будет не в порядке, когда вы попытаетесь его вернуть , Либо положите 'return' в блок' try', либо объявите 'convertToInt' вне блока try, но не выполняйте' parseInt', пока не будете * внутри * блока 'try'. – Dancrumb

Смежные вопросы