无法抛出或捕获Java'TimeoutException'

时间:2014-07-08 17:32:58

标签: java android timeoutexception

我正在开发一个使用 AsyncTask 读取网页的Android应用程序。我有2个AsyncTask类,它们读取不同的页面,一个内部服务,其他没有。在这两种情况下 url connection 方法包含在 try-catch 块中,但它们的catch块不同(第二个 AsyncTask类中缺少 TimeoutException catch块,尝试过手动捕获或抛出但失败了。)即使他们的连接方法相同,他们的 try-catch 块也不同,但我需要在两个任务中捕获 TimeoutException 。 这是我的第一个AsyncTask类的一部分

try {
    url=new URL(link);
    huc=(HttpURLConnection) url.openConnection();
    huc.setRequestMethod("GET");
    huc.setDoOutput(true);
    huc.setReadTimeout(READ_TIMEOUT);
    huc.connect();
    dothework();
} catch (IOException e) {
    e.printStackTrace();
} catch (TimeoutException e) {
    showErrorMsg();
    e.printStackTrace();
}

和第二个AsyncTask类的一部分

try {
    url = new URL(link);
    HttpURLConnection huc=(HttpURLConnection) url.openConnection();
    huc.setReadTimeout(5000);
    huc.setDoOutput(true);
    huc.setRequestMethod("GET");
    huc.connect();
}catch (MalformedURLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    Toast.makeText(ctx, e.getMessage(), Toast.LENGTH_LONG).show();
    e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:0)

我不确定,但我认为HttpConnection已经是AsyncTask。所以,我认为你正在调用另一个AsyncTask。