错误:异常 IOException 永远不会在相应 try 语句的正文中引发



我每次都收到一个错误。我做错了什么?

我的代码:

 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
    {
    }
}

假设mMap是一个HashMaptry块中的代码永远不会抛出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);
    }
}

IOException 被检查异常。因此,try 块中的代码不是可以引发 IOExcption 的潜在代码,这就是编译器显示错误的原因。使用可以引发的特定异常类型捕获块或使用未经检查的异常捕获块。在您尝试块代码时,只能提出 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
{
}

最新更新