2015-10-01 4 views
-2

Я просмотрел несколько сообщений, относящихся к той же проблеме, что и у меня, но я не могу понять, как исправить мою. Говорят, чтобы добавить открытый класс, но я просто встретил больше ошибок. Я получаю сообщение об ошибке в строке 1, которая является комментарием, который хорош, прежде чем добавить try-catch. (Код скачет, где попробовать улов)JSP JAVA: Незаконный старт типа try-catch

<%  

    String curr1 = request.getParameter("lstCurrency1"); 
    String curr2 = request.getParameter("lstCurrency2"); 
    String errorMessage = null; 

    try { 
    Double currIn = Double.parseDouble(request.getParameter("txtCurrency1"));    
    Double convert = fxDataModel.getFxRate(curr1,curr2)*currIn; 
    } 
    catch (NumberFormatException ex){ 
     errorMessage = "Please insert a valid number!"; 
    } 
    String[] currencies = fxDataModel.getFxCurrencies(); 
%> 

Этот код выше мой HTML-страницу, которая опирается на currIn и конвертировать для заполнения текстовых полей. Все здесь отлично работает, пока я не добавлю попытку. Я прочитал, что мне может понадобиться добавить открытый класс, но каждый раз, когда я его пытаюсь, это дает мне больше ошибок, а «запрос» больше не распознается. Может ли кто-нибудь помочь мне понять, почему это говорит о незаконном начале типа?

Благодаря

+1

Пожалуйста, скопируйте точное сообщение об ошибке вы получите. – Henry

+0

@Henry Я получаю «незаконное начало типа», и мои переменные currIn и convert становятся подчеркнутыми и говорят «не могу найти символ» позже в моем html – DrMoney

+0

1) Код, который вы опубликовали, отображается правильно. Таким образом, есть, вероятно, важные вещи * ВЫ НЕ ПОКАЗЫВАЕТЕ США * !!!! 2) Вы не можете объявить «currIn» и «convert» * внутри * блока try/catch. Вероятно, это объясняет ошибку «undefined» (опять же - не похоже, что вы отправили код, который дал фактическую ошибку). 3) Плохая идея использовать блоки try/catch в JSP (следовательно, совет «добавить класс») ... но это НЕ НЕЗАКОННО, и это НЕ ПРОБЛЕМА. Вам нужно разместить точный код, дающий «Незаконный старт типа», а также выставить ТОЧНОЕ СООБЩЕНИЕ! – paulsm4

ответ

1

Вы объявляете переменные в try блоке поэтому они могут быть использованы только в блоке.

Поэтому поставить декларацию вне примерки блока:

Double currIn = null, convert = null; 
try { 
    currIn = Double.parseDouble(request.getParameter("txtCurrency1"));    
    convert = fxDataModel.getFxRate(curr1,curr2)*currIn; 
} 
catch (NumberFormatException ex){ 
    errorMessage = "Please insert a valid number!"; 
} 
+0

Yup, по электронной почте мой профессор за помощь, и он сказал то же самое, хороший улов, хотя я по ошибке не опубликовал весь необходимый код. Спасибо! – DrMoney

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