我有一個groovy組件內部正在拋出java.lang.IllegalArgumentException的成功塊。 ,直到成功的失敗表達我聲明表達#[exception.causedBy(java.lang.IllegalArgumentException異常)現在同步直到成功失敗表達不起作用
理想應該是真實和重試應該爲這個特殊的例外只發生,但他們都發生了每個異常也。即使我通過'#[false]'手動設置失敗表達式爲False,或者我設置了一個變量並將其值與自身進行比較(與變量本身的值進行比較),但它仍然無效。
<until-successful maxRetries="5" millisBetweenRetries="600" failureExpression="[exception.causedBy(java.net.SocketTimeoutException)]" doc:name="Until Successful" synchronous="true">
<scripting:component doc:name="Groovy">
<scripting:script engine="Groovy"><![CDATA[throw new IllegalArgumentException()]]></scripting:script>
</scripting:component>
</until-successful>
我只是希望它重試特定的異常併爲它應該拋出異常,而不重試其他異常。
感謝您的回覆託尼。抱歉誤會......我的意思是說,不管我是否保留爲真或假,它仍在重試每一個異常。 所以我想處理特定的異常,以重試在直到成功..休息我想直接扔到Catch塊沒有任何重試。 – srbhvatsa
在這種情況下,我建議您將腳本塊放在單獨的流程中,並在您的成功範圍內使用' '。從這個流程中,您可以添加一個專用於前者的異常策略,並指定除了少數幾個例外之外的所有內容。因此,直到成功的範圍將不再爲他們重試。 –