java - 我将 getHostAddress() 与 try-catch 一起使用,但是当我运行它时,它只是不运行 这有什么问题吗?

标签 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() ,但是当我运行它时它只是不运行这有什么问题吗?

最佳答案

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

顺便说一句:捕获所有异常是一种不好的做法,因为您可能会捕获一些try block 不希望的异常。您可以阅读更多相关内容 here .

关于java - 我将 getHostAddress() 与 try-catch 一起使用,但是当我运行它时,它只是不运行 这有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21694805/

相关文章:

java - 如何将警报值传递给警报接收器

java - API 21 上可用的 finishAndRemoveTask()

java - 如何创建索引并在 Elasticsearch 中输入 - 我已经尝试过到目前为止提供的答案,但它们不起作用

android - 连接到具有相同 SSID 的最强接入点(信号最强的接入点)

java - 找不到tomcat eclipse main jsp随机类

java - JFrame 设计面板看起来是空的

java - 是否可以在不使用反射的情况下用 Java 编写一个简单的通用 DAO?

Android Wear,startActivityForResult 无法通过自定义显示 Intent 通知工作

iphone - 使用 Titanium 为 iPhone 和 Android 开发应用程序的挑战

android - 由于 : Debug Certificate expired,示例 Android 项目无法正常工作