我每次都会收到错误消息。我究竟做错了什么?
我的代码:
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
{
}
}
答案 0 :(得分:3)
假设mMap
是HashMap
,try
块内的代码永远不会抛出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
{
}