실행합니다. 큐 오프마지막으로 보장하기 위해 내부 캐치를 시도 내가 큐 일회성 항목을 처리 할 필요가
삭제 항목 Queue.DeleteMessage
에 수동 호출입니다. 이것은 처리가 성공했는지 여부에 관계없이 발생해야합니다.
var queueMessage = Queue.GetMessage();
try
{
pipeline.Process(queueMessage);
}
catch (Exception ex)
{
try
{
Logger.LogException(ex);
}
catch { }
}
finally
{
Queue.DeleteMessage(queueMessage);
}
는 문제 :
실패, 나는 몇 가지 데이터 저장소에 오류를 기록합니다. 이 로깅이 실패하면 (아마도 데이터 저장소를 사용할 수없는 경우) 대기열에서 메시지를 삭제해야합니다.
나는 다른 try catch
에서 LogException
전화를 감쌌다. 이것이 올바른 방법인가요?
'catch 블록에 예외가 발생해도 finally 블록이 실행됩니다.'- 나는 이것을 깨닫지 못했습니다. 완벽 해, 고마워. 이 somwehere 다른 – davenewza
@Alireza는'그것은 unhandled' 남아 –
당신이 제안하고 PO의 자신의 코드가 어떤 잡을 예외를 캐치하는 것이 무엇인지의 차이 잡힐 때까지하지 않는 한 – Alireza