Java 捕获是否加载了url

Java 捕获是否加载了url,java,android,url,webview,Java,Android,Url,Webview,我有一个简单的应用程序,可以在网络视图中显示网页。因为其中一个url还没有在线,我想做一个祝酒词,说它没有在线,当它在线时,它只是加载url 有人知道怎么做吗 提前感谢。打开URL连接,然后首先检查连接的响应代码。如果是404,则表示该站点不存在。然后你就可以做所有你需要的网站缺失的东西了。示例代码: try { Url url = new URL(someStringUrl); HttpURLConnection huc = ( HttpURLConnection

我有一个简单的应用程序,可以在网络视图中显示网页。因为其中一个url还没有在线,我想做一个祝酒词,说它没有在线,当它在线时,它只是加载url

有人知道怎么做吗


提前感谢。

打开URL连接,然后首先检查连接的响应代码。如果是404,则表示该站点不存在。然后你就可以做所有你需要的网站缺失的东西了。示例代码:

 try {
      Url url = new URL(someStringUrl);
      HttpURLConnection huc =  ( HttpURLConnection )  url.openConnection (); 
      if(huc.getResponseCode() == 404) {
           //Site doesnt exist, returned 404 error
      }
 } catch(Exception e) {
     e.printStackTrace();
 }

比如说,您可以扩展自己的异常

public class Exception404 extends Exception {
}
然后捕获两个不同的异常:

HttpURLConnection huc = null;

try {
     Url url = new URL(someStringUrl);
     huc =  ( HttpURLConnection )  url.openConnection (); 
     if(huc.getResponseCode() == 404) 
        throw new Exception404();

     //...
     //...
     //...

 } catch(Exception404 e) { 
    e.printStackTrace();    
 } catch(Exception e) {
    e.printStackTrace();
 } finally {
    //close connection (saves battery life time)
    huc.disconnect();
 }
或者您可以以相同的方式抛出相同的异常来处理这两个故障

try {
      // Write your code to access the website here
}捕获(例外e){


}

谢谢,这几乎就是答案,只是我使用了一个字符串作为url,所以它在“url.openconnection”上出现了一个错误。@user1534326请看我的编辑它不起作用,它只给出了一个空白页,我还试着祝酒。但是什么都没有。另外,当我尝试一个网页,是在线的时候,它给出了一个空白页,这与我有什么不同?他们都有完全相同的结果,只是我的先发。。。?如果有重大差异,请告诉我,我可能遗漏了一些内容是的,你是对的。但是,抛出异常会使代码更具可读性,因为你会在try块末尾处理意外的结果。此外,可能需要抛出304(未修改的,因为),这将不会由以下函数处理,但是通过调用此函数的函数。这比在成功/失败时传递布尔值更令人信服。此外,我已经在try块的末尾关闭了连接,这将打开android设备的收音机(节省电池寿命),抛出一个异常。与if语句相比,它仍然不太美观或可读,或切换响应代码。但是,我确实忘记了diconnect;)
// Your execution will reach here once the site can't be reached

 Toast.makeText(Your_Activity.this, "Site still not online",duration).show();