需要从try块移动到catch

时间:2011-11-10 13:47:38

标签: android

我在try块中编写了一些代码,如下所示。

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);
}

当我们无法访问IP地址时,我需要从try块移动,如果condtion为catch块,即IP地址可达时为false。

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

我无法在if块中出现异常。

有没有办法从If块移动到catch块而不会发生异常或在if块中发生异常。

请有人帮助我。

1 个答案:

答案 0 :(得分:2)

如果不可访问条件的代码与异常块中的代码相同,那么您应该抛出异常,或者将当前catch代码重构为方法,并从中调用该方法这两个地方。 (或者只是重复代码,但是ew。)我不确定问题是什么。

FWIW,明确针对false进行检查通常不赞成 - 否定了条件:

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

捕获Exception特别是如果没有记录它,则是一种反模式,但如果你将它包裹起来和/或重新投掷它,它就不那么糟糕了。 / p>