错误:异常IOException永远不会在相应的try语句的主体中抛出

时间:2013-10-11 02:05:05

标签: java

我每次都会收到错误消息。我究竟做错了什么?

我的代码:

 public static void hashMap(String crnString)
{
    try
    {
        if (mMap.containsKey(crnString))
        {
            int count = mMap.get(crnString);
            count++;
            mMap.put(crnString, count);
        }
        else
        {
            mMap.put(crnString, 1);
        }
    }
    catch (IOException e)
    {
        e.printStackTrace();
    }
    finally
    {
    }
}

2 个答案:

答案 0 :(得分:3)

假设mMapHashMaptry块内的代码永远不会抛出IOException。删除包裹代码的try-catch块。

public static void hashMap(String crnString){
    if (mMap.containsKey(crnString)) {
        int count = mMap.get(crnString);
        count++;
        mMap.put(crnString, count);
    } else {
        mMap.put(crnString, 1);
    }
}

答案 1 :(得分:2)

IOException被检查异常。因此,try块中的代码不是可能引发IOExcption的潜在代码,这就是编译器显示错误的原因。使用可以引发的特定异常类型catch块或使用未经检查的异常catch块。在尝试块代码时,只能引发NPE。

  try
{
    if (mMap.containsKey(crnString))
    {
        int count = mMap.get(crnString);
        count++;
        mMap.put(crnString, count);
    }
    else
    {
        mMap.put(crnString, 1);
    }
} catch (NullPointerException e)
{
    e.printStackTrace();
} catch(Exception e) {
   System.out.println("Unexcepted Exception");
    e.printStackTrace();
}
finally
{
}