Ste*_*eve 5 java android exception-handling try-catch
我试图从传入的值(使用Bundle)在Android中创建一个IP地址,如果失败,我将使用硬编码的默认IP地址创建它.如果失败,那么我退出应用程序.
我想知道的是,如果可以像我在这里做的那样嵌套try/catch,或者是否有更好的方法.
try {
// serverSettings is the Bundle name that was passed in.
ipAddress = InetAddress.getByName(serverSettings.getString("serverIp"));
} catch (UnknownHostException e) {
Log.e("ERROR:", "IOException: Failed to create IP, trying default");
try {
// DEFAULT_IP is the hard-coded default fall-back address
ipAddress = InetAddress.getByName(DEFAULT_IP);
} catch (UnknownHostException e1) {
Log.e("ERROR:", "IOException: Total fail, exiting");
e1.printStackTrace();
finish();
}
}
Run Code Online (Sandbox Code Playgroud)
Chr*_*ung 10
这是合法的Java.它看起来很笨我,我可能会采用不同的方式,但它有效并且有效.
这是我如何做到的:
public InetAddress getServerAddress() {
for (String address : new String[] {serverSettings.getString("serverIp"), DEFAULT_IP}) {
try {
return InetAddress.getByName(address);
} catch (UnknownHostException e) {
Log.e("ERROR:", "Cannot resolve " + address);
}
}
Log.e("ERROR:", "Total fail, exiting");
finish();
return null; // not reached
}
Run Code Online (Sandbox Code Playgroud)