2011-11-10 21 views
1

tryブロックに次のようにいくつかのコードを記述しました。tryブロックからcatchブロックに移動する必要があります

try { 
    if (server1IPAddress != "") { 
    if (InetAddress.getByName(server1IPAddress).isReachable(1000) == false) { 
     } 
      InsertUploadedTrancasctionDetails(server1IPAddress, deviceId, 
               XMLTransactionData); 
    } 
} catch (Exception exception) { 
    if ((server1IPAddress != server2IPAddress) 
     && (server2IPAddress != "")) { 
      InsertUploadedTrancasctionDetails(server2IPAddress, deviceId, 
               XMLTransactionData); 
} 

私たちは、私がcondtion場合は到達可能なIPアドレスがfalseの場合、ブロックすなわちをキャッチするtryブロックから移動する必要があるIPアドレスに到達することができません。

if (InetAddress.getByName(server1IPAddress).isReachable(1000) == false) { 
} 

ifブロックでは例外を作成できません。

Ifブロックからcatchブロックに移動する方法はありません。例外を作成するか、ifブロックで例外を作成します。

いずれかが私を助けますか。

+0

if文の中で問題を処理するだけではどうですか? – DeeV

答えて

2

到達不可能な条件のコードが例外ブロックのコードと同じ場合は、例外をスローするか、現在のcatchコードをリファクタリングしてそのメソッドを両方の場所から呼び出す必要があります。 (または、コードを繰り返してください。)しかし、私は本当に問題が何であるか分かりません。

falseに対して明示的にチェックするが、一般的に眉をひそめるさFWIW、代わりに - 条件を否定:

if (!InetAddress.getByName(server1IPAddress).isReachable(1000)) { 
    // Call refactored catch-handling code, or throw exception. 
} 

は特にExceptionをキャッチそれをログに記録されていない場合、あなたがしている場合が、アンチパターンでありますそれを包み込んだり再投げたりすると、それほど悪くはありません。

関連する問題