我的假设是,检查第一个文档是否为空应该足以防止空异常错误,但事实并非如此。
我似乎找不到例外的来源和如何防止它。
下面的是错误日志:
Agent Manager: Agent printing: Create Report error: null
Agent Manager: Agent error: java.lang.NullPointerException
Agent Manager: Agent error: at JavaAgent.createReport(Unknown Source)
Agent Manager: Agent error: at JavaAgent.NotesMain(Unknown Source)
Agent Manager: Agent error: at lotus.domino.AgentBase.runNotes(Unknown Source)
Agent Manager: Agent error: at lotus.domino.NotesThread.run(Unknown Source)下面的是被称为的函数
private void createReport() {
Integer qCount = 0;
Document qDoc = null;
ViewNavigator vNav = null;
try {
qView = currentDatabase.getView("RecsByRNo");
qDoc = qView.getFirstDocument();
vNav = qView.createViewNav();
while (qDoc != null) {
String qNo = qDoc.getItemValueString("RNo");
String qType = qDoc.getItemValueString("EType");
String qStatus = qDoc.getItemValueString("Status");
String qBy = qDoc.getItemValueString("RBy");
Document tmpReqDoc = qView.getNextDocument(qDoc);
qDoc.recycle();
qDoc = tmpReqDoc;
}
} catch (Exception e) {
logErrors("Create Report error: ", e);
} finally {
try {
qView.recycle();
qDoc.recycle();
vNav.recycle();
} catch (Exception e) {
}
}
agentLogger.LogAction("<<< Count: " + qCount + " >>>");
}
private void logErrors(String t, Exception e) {
agentLogger.LogError(t + " " + e.getMessage());
agentLogger.LogError(t + " " + e.getStackTrace().toString());
System.out.println(t + " " + e.getMessage());
e.printStackTrace();
}如有任何建议,将不胜感激。
发布于 2022-01-06 10:45:05
打开代理属性中的选项“用调试信息编译Java代码”,以获得Java堆栈跟踪中错误的行号。这应该能给你一些提示。currentDatabase可能为null,或者视图不存在。
发布于 2022-01-06 10:47:06
打开“编译带有调试信息的Java代码”,这样您就知道错误在哪里了
https://stackoverflow.com/questions/70605693
复制相似问题