我使用了带有try-catch的getHostAddress(),但是当我运行它时,它只是运行没有错在这里?

时间:2014-02-11 06:33:41

标签: java android eclipse

public class MainA extends Activity {
    WifiManager wifi=(WifiManager)getSystemService(Context.WIFI_SERVICE);
    WifiInfo info=wifi.getConnectionInfo();
    String ip;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button bt=(Button)findViewById(R.id.b1);

        try{
            InetAddress ownIP=InetAddress.getLocalHost();
            ip=ownIP.getHostAddress();
            //System.out.println("IP of my Android := "+ownIP.getHostAddress());
        }catch (Exception e){
            //System.out.println("Exception caught ="+e.getMessage());
        }

        bt.setOnClickListener(new OnClickListener(){
            public void onClick(View v) {
                // TODO Auto-generated method stub
                TextView tv1=(TextView)findViewById(R.id.tv1);
                tv1.setText(ip);
            }
        });
    }
}

它会停止对话框,我应该使用其他方法还是其他任何方式使用它。我使用了try-catch的getHostAddress(),但是当我运行它时它只是不运行这有什么问题?

1 个答案:

答案 0 :(得分:0)

我的猜测是,你正试图获取你的环回地址的主机并抛出一个Exception,因为它没有被解析到任何主机。您可能正在捕捉Exception,但由于您没有内部代码,您认为没有任何事情发生。

顺便说一下:捕获所有异常是一种不好的做法,因为您可能正在捕获try块不期望的异常。您可以在here上阅读更多内容。