簡體   English   中英

這是不好的做法嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM