Wartość zwracana przez Java (w klauzuli try / catch)
każdy. Mam nowe pytanie o powracającą wartość w java. Oto mój kod.
<code>@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); } } </code>
Eclipse zgłasza błąd „Ta metoda musi zwrócić błąd typu long”. Mimo to zwróciłem tid w bloku try; eclipse sugeruje dodanie wartości zwracanej po bloku try / catch, co zepsułoby logikę. Czy możesz mi powiedzieć, co tu jest nie tak? Dzięki.