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

大家。我有一个关于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被抛出的返回值是不确定的。引发异常时,控制权立即传递给异常处理程序。在这种情况下,您记录错误。然后控制从该点继续,直到该函数结束而不返回值。您需要返回一个值或引发异常。

以上是 Java返回值(在try / catch子句中) 的全部内容, 来源链接: utcz.com/qa/407083.html

回到顶部