我每次都收到一个错误。我做错了什么?
我的代码:
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
是一个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);
}
}
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
{
}