[英]Is this a bad practice?
以下代碼是否被視為不良做法? 您認為可以通過其他方式做到嗎? 目標是總是通過成功(即,調用service.invoke(id);正常返回)或失敗來更新狀態。
@Autowired
private Service service;
public void onMessage(Message message) {
String id = null;
String status = "FAILED";
try {
id = ((TextMessage) message).getText();
status = service.invoke(id); //can throw unchecked exception
} catch (final JMSException e) {
throw new RuntimeException(e);
} finally {
if (StringUtils.isNumeric(id)) {
service.update(id, status);
}
}
}
這取決於您的用例,是否必須根據上一步執行某個步驟。 無論您可能收到什么異常,使用finally都可以執行第二步。
我建議在try...catch
塊之外進行第二步操作,以便僅在遇到預期的異常時才進行更新,然后繼續執行第二步操作,否則,方法將拋出並退出。
我認為您不應該使用消息偵聽器的實現,應該獨立於spring技術來進行連接。 只是基於pojo。 將<jms:listener-container >
與<jms:listener>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.