栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

未报告的异常Java

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

未报告的异常Java

您的

fillData
call
buffer.readLine()
,它被声明为throw
IOException
,但是您既没有捕获witin异常
fillData
,也没有声明它可能被抛出。

最简单的解决方法是将的签名更改

fillData
为:

public void fillData(String input, BufferedReader buffer) throws IOException

我也强烈建议 不要 关闭中的读者

fillData
。通常,获取资源的相同代码应负责关闭资源。在这里,try-with-
resources语句最合适,所以在
read

try (BufferedReader buffer = new BufferedReader(new InputStreamReader(in))) {    String input = buffer.readLine();     fillData(input,buffer);}

但是,即使这样也不是理想的-因为您早先打开了输入流。我
建议始终将编码传递给

InputStreamReader
构造函数,否则它将使用平台默认编码。在Java
7+中,您可以使用
Files.newBufferedReader
默认为UTF-8的版本。

另外:

  • read
    声明抛出异常
    Exception
    通常是一个坏主意;只抛出特定的异常
  • 捕获
    Exception
    read
    是一个坏主意; 只捕获特定的异常
  • read
    失败后继续执行操作是个坏主意-
    in
    为空,此后立即导致失败
  • 有一个名为
    fileName
    type 的参数是非常奇怪的
    int
    。碰巧的是,您无论如何都没有使用它-这有什么意义?

基本上, 所有 异常处理和资源管理都需要大量工作。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/440722.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号