首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Domino代理中防止Java类中的NullPointerException

如何在Domino代理中防止Java类中的NullPointerException
EN

Stack Overflow用户
提问于 2022-01-06 10:24:24
回答 2查看 82关注 0票数 0

我的假设是,检查第一个文档是否为空应该足以防止空异常错误,但事实并非如此。

我似乎找不到例外的来源和如何防止它。

下面的是错误日志:

代码语言:javascript
复制
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)

下面的是被称为的函数

代码语言:javascript
复制
        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();
    }

如有任何建议,将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-06 10:45:05

打开代理属性中的选项“用调试信息编译Java代码”,以获得Java堆栈跟踪中错误的行号。这应该能给你一些提示。currentDatabase可能为null,或者视图不存在。

票数 3
EN

Stack Overflow用户

发布于 2022-01-06 10:47:06

打开“编译带有调试信息的Java代码”,这样您就知道错误在哪里了

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

https://stackoverflow.com/questions/70605693

复制
相关文章

相似问题

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