当前位置: 首页 > 面试题库 >

Java返回值(在try / catch子句中)

方航
2023-03-14
问题内容

大家。我有一个关于java中返回值的菜鸟问题。这是我的代码

@Override
public long addDrugTreatment(long id, String diagnosis, String drug,
        float dosage) throws PatientNotFoundExn {
    try {
        Patient patient = patientDAO.getPatientByDbId(id);
        long tid = patient.addDrugTreatment(diagnosis, drug, dosage);

        Connection treatmentConn = treatmentConnFactory.createConnection();
        Session session = treatmentConn.createSession(true, Session.AUTO_ACKNOWLEDGE);
        MessageProducer producer = session.createProducer(treatmentTopic);

        TreatmentDto treatment = null;
        ObjectMessage message = session.createObjectMessage();
        message.setObject(treatment);
        producer.send(message);

        return tid;
    } catch (PatientExn e) {
        throw new PatientNotFoundExn(e.toString());
    } catch (JMSException e) {
        logger.severe("JMS Error: " + e);
    }
}

Eclipse报告“此方法必须返回long类型的结果”错误。但是我确实在try块中返回了提示。eclipse建议在try /
catch块之后添加一个返回值,这会破坏逻辑。你能告诉我这里有什么问题吗?谢谢。


问题答案:

当一个JMSException被抛出的返回值是不确定的。引发异常时,控制权立即传递给异常处理程序。在这种情况下,您记录错误。然后控制从该点继续,直到该函数结束而不返回值。您需要返回一个值或引发异常。



 类似资料:
  • 问题内容: 我刚遇到以下代码: 毫无疑问,运行此代码将产生“返回值:3”的输出。 但是,我对此感到好奇: JVM中的内部机制。有谁知道VM是否通过覆盖第一个“ return 1”来实际替换堆栈上的返回值?如果是这样,我在哪里可以找到更多信息。 我还没有找到以这种方式使用并允许在JVM中实现的final机制中的返回值的用法。如果将此代码构造用作返回错误代码的手段,我认为有更好的方法记录错误或返回这些

  • 我在Java中所知的程度可以通过两种方式报告错误:返回值和异常。例如,下面的代码: 另一个观察结果是:如果取消对最后一条“return result”语句的注释,则会得到一条错误消息: 变量结果可能未初始化 ;如果对最后一条“return result”进行注释,则会得到一条错误消息: 缺少return语句 但是我已经在try子句中包含了return语句。

  • 我有一个测试网站功能的Node.js项目。它利用Webdriver.iov4和摩卡/柴。 我创建了一个函数,用于检查页面上是否存在超时1分钟的元素。如果元素存在,它应该返回。如果没有,它应该返回。 我使用相同的函数来测试页面上是否没有元素。在这种情况下,我希望函数返回。但是,函数不会返回false,而是抛出超时错误,并且既不返回也不返回。这很奇怪,因为我在try-catch子句的catch块中包含

  • 在实际开发中,根据 try catch 语句的执行过程,try 语句块和 catch 语句块有可能不被完全执行,而有些处理代码则要求必须执行。例如,程序在 try 块里打开了一些物理资源(如数据库连接、网络连接和磁盘文件等),这些物理资源都必须显式回收。 Java的垃圾回收机制不会回收任何物理资源,垃圾回收机制只回收堆内存中对象所占用的内存。 所以为了确保一定能回收 try 块中打开的物理资源,异

  • 我刚刚开始用java编写一个21点游戏。我试图让程序要求用户再次输入,如果他们输入的现金不是一个有效的整数。我看到许多带有catch的try语句示例,但没有一个是有效的。程序给出的错误InputMismatchException无法解析为类型。我遵循的一个线程就是这个,我有完全相同的代码,只是变量名不同。给你。Java输入不匹配异常 这是我的密码: 任何关于为什么我几乎精确的代码不起作用的帮助都将

  • 问题是,如果我输入一个正数(所以一切都正确),我必须输入它两次!同样,当我输入一个负数时,我需要输入两次。当我输入一个字符串时,我会得到一个“错误”,所以我想这还算不错。它是这样显示的: Bitte geben Sie die kleinste阳性Zahl des Intervalls Ein:-2 -3 -7 Bitte Geben Sie eine阳性Zahl ein 2