Java null异常如何进入try-catch分支?
我的java代码抛出异常Java null异常如何进入try-catch分支?,java,exception,exception-handling,Java,Exception,Exception Handling,我的java代码抛出异常e,该异常为null(调试显示e==null) 代码如何在以下位置捕捉到这一点: } catch (IOException e) { e.printStackTrace(); } 如果e为空,它怎么会有一个类型 我想到两个想法: 1) 大多数调试器显示的是e.toString()。如果您有一个异常对象,其toString()返回null(或“null”),这可能可以解释您看到的情况。调试器说e是什么类型的 2) 另一种可能是,您的源代码与当前执行的类不匹配,并且您所
e
,该异常为null(调试显示e==null
)
代码如何在以下位置捕捉到这一点:
} catch (IOException e) {
e.printStackTrace();
}
如果e为空,它怎么会有一个类型
我想到两个想法:
1) 大多数调试器显示的是e.toString()。如果您有一个异常对象,其toString()返回null(或“null”),这可能可以解释您看到的情况。调试器说e是什么类型的
2) 另一种可能是,您的源代码与当前执行的类不匹配,并且您所处的行与您认为的不同。我就这样被抓住了 您如何验证
catch
块中的e
是否为null
?如果断点在catch
行本身上停止,e
此时将为null
。但是在块内e
将有一个值。不可能。您看到的是调试器中的一个缺陷(我自己也看到了Eclipse调试器的一些有趣的情况)。请尝试if(e==null).
大多数调试器显示的是e.toString()。如果您有一个异常对象,其toString()返回null(或“null”),这可能可以解释您看到的情况。调试器说e是什么类型的?另一种可能性是,您的源代码与当前执行的类不匹配,并且您所处的行与您认为的不同。我就是这样被发现的。那么,出于好奇,问题出在哪一个?