java的try可以不接catch吗,在Java中嵌套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();

}

}

解决方法:

这是合法的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

}

标签:java,android,exception-handling,try-catch

来源: https://codeday.me/bug/20190713/1444864.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值