我很好奇以下是可能的。catch块中的Exception是否可能是空的?
catch (Exception e) {
e.printStackTrace();
}
当我调试我的代码,他一跃而起,抓博客 - 到目前为止好 - 但比我检查它是什么类型的异常,它是E =空?
这怎么可能?我有一个例外,但例外情况为空?
问候,
我很好奇以下是可能的。catch块中的Exception是否可能是空的?
catch (Exception e) {
e.printStackTrace();
}
当我调试我的代码,他一跃而起,抓博客 - 到目前为止好 - 但比我检查它是什么类型的异常,它是E =空?
这怎么可能?我有一个例外,但例外情况为空?
问候,
也许这是与调试器或虚拟机中的问题 - 对异常是懒加载,即,未加载异常,直到需要。只要不调用异常的方法,它的数据就不会被加载。当第一种方法被调用时,虚拟机填充异常字段。
执行printStackTrace
或使用调试器执行该异常中的一个方法(例如Eclipse中的Expression View)后,您应该会看到异常。
我正在使用Android Studio,任何示例我应该在那里做什么? – user2978538
对不起,我只使用Eclipse - 但看到了类似的东西:异常是__empty__只有在调用printStackTrace后,所有字段都被填充。在执行下一行之后会发生什么,我的意思是'e.printStackTrace()'。它打印正确吗?你能看到调试器中的异常吗? –
好吧,我的调试指针在e.printStackTrace - 或者你是什么意思? – user2978538
检查: –
Areo
出于某种原因,调试器还没有在catch块中的第一条语句之前初始化异常。如果您之前添加了一个语句,或者如果您进入并退出,它应该被初始化。 –
当您检查值时,您的调试指针在哪里?如果它在'catch(Exception e){'那么你的调试器还没有捕获到'e'的值。转到下一行并再次检查。 – LuigiEdlCarno