みんな。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 ブロックで tid を返しました。eclipse は、try/catch ブロックの後に戻り値を追加することを提案していますが、これはロジックを壊します。ここで何が悪いのか教えてください。ありがとう。