我想拋出一個自定義異常與駱駝中的自定義錯誤消息。我可以通過如下的值設置爲已定義的bean做到這一點:在駱駝中拋出異常與自定義錯誤消息
<CamelContext>
<route>
<from uri="timer:myTimer"/>
<bean ref="myException" method="setErrorCode(errorCode)"/>
<bean ref="myException" method="setErrorMessage(errorMessage)"/>
<throwException ref="myException"/>
</route>
</CamelContext>
這種做法是工作的罰款。但是這種方法存在的問題是,只有一個MyException
實例,當存在多個併發消費者時,會導致一種競爭條件。
由於這個問題,我想每次創建一個新的excpetion實例。不幸的是,我沒有看到在駝峯路由中創建一個異常實例的方法,爲它設置值然後拋出。
我已經讀過,從駝峯2.17有一個附加屬性message
來設置錯誤信息。對我而言,有一些制約因素迫使我堅持使用駱駝2.15。
那麼,在駱駝中用錯誤代碼和錯誤信息創建自定義異常的正確方法是什麼?
我不知道,但我認爲你可以原型範圍設置爲'myException'豆,所以每次都會創建新的異常實例。 – Enigo
爲什麼不爲所有異常添加一個OnException處理程序來設置異常,或者將其路由到一些處理錯誤消息的錯誤處理程序路由? –
@Enigo。將範圍設置爲原型後,它將爲每個參考提供新的對象。因此,bean的價值在於bean,而新bean引發異常。 – niyasc