e.getmessage()为null
时间: 2024-02-19 13:01:24 浏览: 128
根据你提供的信息,很难判断这个问题的具体原因。可能是在调用getmessage()方法之前,e对象没有被正确初始化,也可能是在程序执行过程中,getmessage()方法返回的值被意外地设置成了null。你可以检查一下程序的日志或者进行一些调试,以便更准确地定位问题所在。如果你能提供更多的信息和代码,我可以帮你更好地解决这个问题。
相关问题
简化如下代码:int span = CURRENT_SPAN;//每次收取2天邮件 int receiveCount = 0;//获取邮件总数 Date lastExecuteTime = currentMaxTime; Date beginTime = currentMaxTime; Calendar calendar = Calendar.getInstance(); calendar.setTime(beginTime); calendar.add(Calendar.DATE, span); Date endTime = calendar.getTime(); boolean hasMore = true; while (hasMore) { if (endTime.compareTo(now) > 0) { hasMore = false; endTime = now; } List<Email> emails = null; try { emails = emailFolderTree.getEmails(beginTime, endTime); saveEmails(sysUser, emails); receiveCount += emails.size(); lastExecuteTime = endTime; calendar.setTime(endTime); calendar.add(Calendar.SECOND, 1); beginTime = calendar.getTime(); calendar.add(Calendar.DATE, span); endTime = calendar.getTime(); } catch (Exception e) { logger.error(e.getMessage()); // 增加对异常信息的处理 if(e.getMessage()==null){ personalEmailTaskTime.setRemark(""); } if(e.getMessage()!=null){ if(e.getMessage().length()<100){ personalEmailTaskTime.setRemark(e.getMessage()); } if(e.getMessage().length()>100){ personalEmailTaskTime.setRemark(e.getMessage().substring(0,100)); } } break; } } personalEmailTaskTime.setLastExecuteTime(lastExecuteTime);
可以简化的代码如下:
int span = CURRENT_SPAN;
int receiveCount = 0;
Date lastExecuteTime = currentMaxTime;
Date beginTime = currentMaxTime;
while (beginTime.compareTo(now) < 0) {
Date endTime = new Date(beginTime.getTime() + span * 86400000L);
if (endTime.compareTo(now) > 0) {
endTime = now;
}
List<Email> emails = null;
try {
emails = emailFolderTree.getEmails(beginTime, endTime);
saveEmails(sysUser, emails);
receiveCount += emails.size();
lastExecuteTime = endTime;
} catch (Exception e) {
logger.error(e.getMessage());
if(e.getMessage()==null){
personalEmailTaskTime.setRemark("");
}
if(e.getMessage()!=null){
if(e.getMessage().length()<100){
personalEmailTaskTime.setRemark(e.getMessage());
}
if(e.getMessage().length()>100){
personalEmailTaskTime.setRemark(e.getMessage().substring(0,100));
}
}
break;
}
beginTime = new Date(endTime.getTime() + 1000);
}
personalEmailTaskTime.setLastExecuteTime(lastExecuteTime);
这个代码简化了原来的代码逻辑,去除了无用的变量和重复的计算,同时更加精简和易读。
e.getMessage() 是空的
如果 `e.getMessage()` 返回空(`null`),这通常意味着在抛出异常时没有提供详细消息。这可能是因为异常类的构造函数没有传递消息,或者是因为程序员在抛出异常时意外地将消息设置为 `null`。
在这种情况下,您可以尝试使用 `e.toString()` 方法来获取一个简单的描述,该描述包含了异常的类型和堆栈跟踪信息。另外,您还可以尝试使用 `e.getLocalizedMessage()` 方法来获取本地化的详细消息,但是这也可能返回 `null`,具体取决于异常的实现。
阅读全文