我在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块中发生异常。
请有人帮助我。
答案 0 :(得分:2)
如果不可访问条件的代码与异常块中的代码相同,那么您应该抛出异常,或者将当前catch
代码重构为方法,并从中调用该方法这两个地方。 (或者只是重复代码,但是ew。)我不确定问题是什么。
FWIW,明确针对false
进行检查通常不赞成 - 否定了条件:
if (!InetAddress.getByName(server1IPAddress).isReachable(1000)) {
// Call refactored catch-handling code, or throw exception.
}
捕获Exception
,特别是如果没有记录它,则是一种反模式,但如果你将它包裹起来和/或重新投掷它,它就不那么糟糕了。 / p>