2014-09-17 2 views
-2

Я работаю с некоторым ASP-кодом, с которым я не очень хорошо знаком. Мне нужно преобразовать/изменить код ниже (исходный код) на Java (я не эксперт)Что означает эквивалент vb's On Error Resume Next в Java?

Я понимаю некоторый синтаксис, но я как бы застрял в строке кода, начинающейся с «On Error» Resume Next "Я не знаю, какую функцию использовать для использования этой Java.

Эта часть бросает меня (Не уверен, что «Next» должно быть в Java)

любая помощь будет оценена

<% <!-- each string had DIM in front ex. DIM fEmptyRecordset So i believe I changed what was needed ---> 
<%  
Boolean fEmptyRecordset = ""; ' as Boolean 
Boolean fFirstPass = ""; ' as Boolean 
Boolean fNeedRecordset = ""; ' as Boolean 
Command cmdTemp = ""; ' as Command 
Double dblUnits = ""; ' as Double 
Double dblRateFrom = ""; ' as Double 
Double dblRateTo = ""; ' as Double 
Double newRate = ""; ' as Double 
Double newUnits = ""; ' as Double 
String NewCurrName = ""; ' as String 
String NewCurrName2 = ""; ' as String 

     ' Convert currency 
     fEmptyRecordset = true; 
     fFirstPass = true; 
     fNeedRecordset = true; 
<!--- here is where I'm stuck, I don't quite understand the "On Error Resume Next" function that ASP uses. I'm just looking for gudance in which function this is related to in Java --->  

     On Error Resume Next 
     if (fNeedRecordset) { 
      Set con_currency_sdo = Server.CreateObject("ADODB.Connection") 
      con_currency_sdo.ConnectionTimeout = con_currency_sdo_ConnectionTimeout 
      con_currency_sdo.CommandTimeout = con_currency_sdo_CommandTimeout 
      con_currency_sdo.Open con_currency_sdo_ConnectionString, con_currency_sdo_RuntimeUserName, con_currency_sdo_RuntimePassword 
      Set cmdTemp = Server.CreateObject("ADODB.Command") 
      Set GetRate = Server.CreateObject("ADODB.Recordset") 
      ' Find out what the common base currency is and get the corresponding rates for both 
      ' the From and To currencies. Order desc to get USD, GBP, EUR. (USD is preferred) 
      cmdTemp.CommandText = "SELECT FROMCURR.BASE_CURR_CODE, " & _ 
       "FROMCURR.CURR_RATE_BASE_FC FROMRATE, TOCURR.CURR_RATE_BASE_FC TORATE, " & _ 
       "CURRNAMEFROM.BLMBG_CURR_NAME FROMCURRNAME, CURRNAMETO.BLMBG_CURR_NAME TOCURRNAME " & _ 
       "FROM AON_CURR_DAILY_EXCH_RATE_SDO FROMCURR, AON_CURR_DAILY_EXCH_RATE_SDO TOCURR, " & _ 
       "AON_CURRENCY_SDO CURRNAMEFROM, AON_CURRENCY_SDO CURRNAMETO " & _ 
       "WHERE FROMCURR.CURR_CODE='" & Request.Form("selBaseCurr") & _ 
       "' AND TOCURR.CURR_CODE='" & Request.Form("selTargetCurr") & _ 
       "' AND FROMCURR.BASE_CURR_CODE=TOCURR.BASE_CURR_CODE" & _ 
       " AND FROMCURR.CURR_CODE=CURRNAMEFROM.CURR_CODE" & _ 
       " AND TOCURR.CURR_CODE=CURRNAMETO.CURR_CODE" & _ 
       " AND FROMCURR.CURR_DATE='" & dateString & _ 
       "' AND TOCURR.CURR_DATE='" & dateString & _ 
       "' ORDER BY FROMCURR.BASE_CURR_CODE DESC;" 
      cmdTemp.CommandType = 1 
      Set cmdTemp.ActiveConnection = con_currency_sdo 
      GetRate.Open cmdTemp, , 0, 1 
      ' Place all error codes in comments 
      if (Err.number <> 0) { 
       fEmptyRecordSet = true; 
       out.println("<!-- ADO Errors Begin -->" & "\r\n") 
       for (Object objError : con_currency_sdo.Errors) { 
        out.println("<!-- ADO Error.Number = " & objError.Number & "-->" & "\r\n") 
        out.println("<!-- ADO Error.Description = " & objError.Description & "-->" & "\r\n") 
        out.println("<!-- ADO Error.Source = " & objError.Source & "-->" & "\r\n") 
        out.println("<!-- ADO Error.SQLState = " & objError.SQLState & "-->" & "\r\n") 
        out.println("<!-- ADO Error.NativeError = " & objError.NativeError & "-->" & "\r\n") 
       Next <!--- Not sure what "Next" needs to be in Java ---> 
       out.println("<!-- ADO Errors End -->" & "\r\n") 
       out.println("<!-- VBScript Errors Begin -->" & "\r\n") 
       out.println("<!-- Err.number = " & Err.number & "-->" & "\r\n") 
       out.println("<!-- Err.description = " & Err.description & "-->" & "\r\n") 
       out.println("<!-- Err.source = " & Err.source & "-->" & "\r\n") 
       out.println("<!-- VBScript Errors End -->" & "\r\n") 
       if (checkDate = true) { 
%> 
+3

Этот вопрос не соответствует теме, потому что StackOverflow не является сервисом преобразования кода - вопрос не задан. – user2864740

+0

Преобразование кода сводится к * переписыванию * кода при сохранении эквивалентной семантики. Это требует наименьшего базового знания * систем *. (И JavaScript - это * не * Java.) – user2864740

+1

@pep Затем он может посмотреть его. Если это единственный вопрос, тогда его следует задавать более ясным и понятным образом, включая более четкое сфокусированное название и без кучи нерелевантного кода. «Для этого требуется минимальное знание обеих систем». – user2864740

ответ

3

Ответ на этот вопрос действительно сводится к:

  • (1) Вы хотите повторить это ТОЧНО .. или ...
  • (2) Есть (tm)

Если ответ № 1, поздравляем. Это так просто, как Ьгу {} поймать (е) весь код между

On Error Resume Next 

и

if (Err.number <> 0) { 

err.number и Err.Description были код ошибки/описание. Вместо этого вы можете использовать компоненты Exception.

Если ответ №2, то вы хотите попробовать {} catch (e) код, который может исключить исключение, и действовать на каждое исключение правильно и в соответствии с тем, что произошло. У каждого метода есть разные исключения, которые он может бросить. Похоже, что единственным методом является фактический вызов ADO Open(), так что это единственный, который я обернул бы в try {} catch().

В любом случае, вы не будете иметь все эти свойства ADO для входа в систему. Я бы зарегистрировал любое исключение/исключение text/stacktrace, которое выплевывается как часть объекта исключения.

+0

Спасибо, Линн, я возвращался сюда, чтобы сказать, что я считаю, что мне нужно будет использовать try catch. Еще раз спасибо – POPEYE1716

+0

@ CG-webdev Нет проблем; удачи с остальной частью конверсии! –

1

Это VB Script способ обработки исключений, говорит чтобы продолжить выполнение следующей строки при возникновении ошибки.

Ответил здесь What does the "On Error Resume Next" statement do?

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