首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Exception.getMessage()为空

Exception.getMessage()为空
EN

Stack Overflow用户
提问于 2011-11-23 11:52:06
回答 8查看 104.6K关注 0票数 68

在我的Java代码中,它检查!null条件并抛出一个Exception

例如

代码语言:javascript
复制
try
{
    if (stud.getCall() != null)
        acc.Call = stud.getCall().toString();
    else
        throw new Exception("Data is null");
}
catch (Exception e)
{
    logger.error("Some Error" + e.getMessage());
    throw new Exception("Please check the Manatadatory Field is Missing" + e.getMessage());
}

但在日志中,我得到了:

代码语言:javascript
复制
Some Error null

为什么是e.getMessage null

EN

回答 8

Stack Overflow用户

发布于 2011-11-23 11:56:57

堆栈跟踪将写入日志,而消息将写入标准输出。我的假设是,您没有权限查看stdout被写入的内容,所以现在没有什么可继续进行的。(即使你现在有权看到它,你也有两个不同的东西要拼凑在一起。)

大多数日志库都可以记录堆栈跟踪。这样,您就可以将所有有用的信息放在一起,将异常添加到日志中,而不仅仅是消息,例如

代码语言:javascript
复制
logger.error("caught exception while doing whatever", e);

堆栈跟踪具有异常消息,外加指向导致异常的位置的行号,并在此过程中显示每个调用,因此它非常有用。现在您发现并不是所有的异常都包含消息。

如果您要记录的内容不能处理异常堆栈跟踪信息的写入,那么可以使用代码将堆栈跟踪写为字符串here

发布的代码抛出新异常的方式非常糟糕,因为您丢弃了异常的原始类型,以及原始异常的堆栈跟踪。当你丢弃所有有用的信息时,你怎么能找出哪里出了问题呢?如果您必须捕获异常才能将其记录在这里,那么重新抛出捕获的相同异常,或者将原始异常作为原因传递给新的异常(请查看Throwable构造函数参数),至少这样您不会丢失堆栈跟踪。

您最好使用一个集中的异常处理程序,让它进行日志记录,并让意外的异常在到达处理程序之前不被捕获。因为一旦抛出意外的异常,您的应用程序就处于糟糕的状态,任何依赖于此部件应该完成的操作的后续步骤都将失败,并且您将得到一连串的错误。

票数 21
EN

Stack Overflow用户

发布于 2013-02-25 19:59:49

这就是我修复相同问题的方法,使用下面的代码来查看异常:

代码语言:javascript
复制
"" + e);

当原始程序员在没有实现.getMessage();的情况下抛出异常对象时,这将有助于您

我指责谷歌允许getMessage();为空的异常对象

当我的代码获得一个java.lang.NullPointerException时,它随后导致我在e.getMessage();上的异常记录失败

来自.getMessage();null导致了另一个未处理的异常,并使用强制关闭消息使应用程序崩溃。所以它是这样的:

代码语言:javascript
复制
Log.e("MainLogger.Run.Exception", e.getMessage());

我把它改成了这个更正的版本:

代码语言:javascript
复制
Log.e("MainLogger.Run.Exception", "" + e);

现在它给了我一个很好的字符串,返回java.lang.NullPointerException

票数 14
EN

Stack Overflow用户

发布于 2012-06-17 09:45:05

这来得太晚了,但我敢打赌,stud是空的,你得到的异常是if (stud.getCall()....NullPointerException。这是一个没有消息的异常,也就是null。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8237080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档