加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Android:未处理的异常类型IOException错误

发布时间:2020-12-15 05:10:08 所属栏目:Java 来源:网络整理
导读:我是 Android开发者的总菜鸟.我还在学习,而且我是我的app dev的第一步. 我有这个代码工作,它运行良好或常规Java,现在我正在尝试实现Android操作系统. 在我的代码中,它说TEST.openStream()我得到Unhandled异常类型IOException错误. package com.zv.android;im
我是 Android开发者的总菜鸟.我还在学习,而且我是我的app dev的第一步.

我有这个代码工作,它运行良好或常规Java,现在我正在尝试实现Android操作系统.

在我的代码中,它说TEST.openStream()我得到Unhandled异常类型IOException错误.

package com.zv.android;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;

import android.app.Activity;
import android.os.Bundle;

public class ZipActivity extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        try {
            URL TEST = new URL("http://www.google.com/");
            BufferedReader in = new BufferedReader(new InputStreamReader(TEST.openStream()));

            String inputLine;
            int line=0;
            while ((inputLine = in.readLine()) != null){
                line++;
                       //System.out.println(line + "t" + inputLine); 
            }
           // in.close();
        } catch(MalformedURLException e) {
            //Do something with the exception.
        }

    }
}

解决方法

错误消息很简单:您需要捕获IOException,这是因为URL.openStream()被声明为

public final InputStream openStream() throws IOException

因此,通过接受方法的契约,您也接受了必须处理此异常的事实,这就是它在Java中的工作方式.这是一个经过检查的异常,然后必须捕获它,因为这种异常表示可能出现的情况以及您的代码必须处理的情况.

要捕获它,只需在try语句中添加另一个案例:

try {
  ..
catch (MalformedURLException e) {
  ..
}
catch (IOException e) {
  ..
}

正如最后一点:当你调用openStream()方法时,你不需要捕获它,你可以声明调用openStream()的方法会将异常转发给调用者,但是在调用链的末尾你在任何情况下都必须抓住它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读