如何在java中没有Web服务时处理异常

时间:2014-02-12 08:30:49

标签: java android exception try-catch

我需要在Web服务不可用时处理异常。在我的应用程序中,我正在请求Web服务,它将返回一个XML数据。当Web服务可用时,我的应用程序正常工作。但是当Web服务不可用时,我的应用程序就会崩溃。如何在java中捕获该异常。请注意,我正在为Android开发一个应用程序。

当Web服务不可用时,它看起来像下面的图像 enter image description here

2 个答案:

答案 0 :(得分:2)

使用此功能,您可以检查是否可以使用Web服务

public void isAvailable(){

    // first check if there is a WiFi/data connection available... then:

    URL url = new URL("URL HERE");
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestProperty("Connection", "close");
    connection.setConnectTimeout(10000); // Timeout 10 seconds
    connection.connect();

    // If the web service is available
    if (connection.getResponseCode() == 200) {
        return true;
    }
    else return false;
}

答案 1 :(得分:1)

这就是我在Krishna's代码

的帮助下解决这个问题的方法
public static boolean isAvailable(String link){

        boolean available = false; 

        URL url = null;
        try {
            url = new URL(link);
        } catch (MalformedURLException e) {

            e.printStackTrace();
        }
        HttpURLConnection connection = null;
        try {
            connection = (HttpURLConnection) url.openConnection();
        } catch (IOException e1) {

        }
        connection.setRequestProperty("Connection", "close");
        connection.setConnectTimeout(100000); // Timeout 100 seconds
        try {
            connection.connect();
        } catch (IOException e) {

        }

        try {
            if (connection.getResponseCode() == 200) {
             //   return true;
                available = true;
            }
            else 
                available = false;
                //return false;
        } catch (IOException e) {

            e.printStackTrace();
        }

        return available;
}