Mercurial > pub > ImplabNet
comparison Implab/ActionChainTaskBase.cs @ 196:40d7fed4a09e
fixed promise chaining behavior, the error handler doesn't handle result or cancellation handlers exceptions these exceptions are propagated to the next handlers.
author | cin |
---|---|
date | Mon, 29 Aug 2016 23:15:51 +0300 |
parents | dd4a3590f9c6 |
children | b305c678923a |
comparison
equal
deleted
inserted
replaced
193:0d69c0d6de0d | 196:40d7fed4a09e |
---|---|
34 // т.е. если он инициировал отмену, задача отменилась, вызвался обрабочик отмены | 34 // т.е. если он инициировал отмену, задача отменилась, вызвался обрабочик отмены |
35 // отбработчику сообщили, что результат уже не нужен и уже сам обработчик решает | 35 // отбработчику сообщили, что результат уже не нужен и уже сам обработчик решает |
36 // отдавать ли результат или подтвердить отмену (или вернуть ошибку). | 36 // отдавать ли результат или подтвердить отмену (или вернуть ошибку). |
37 CancellationRequested(p.Cancel); | 37 CancellationRequested(p.Cancel); |
38 } catch (Exception err) { | 38 } catch (Exception err) { |
39 HandleErrorInternal(err); | 39 SetErrorInternal(err); |
40 } | 40 } |
41 } else { | 41 } else { |
42 HandleErrorInternal(reason ?? new OperationCanceledException()); | 42 SetCancelledInternal(reason); |
43 } | 43 } |
44 } | 44 } |
45 | 45 |
46 protected void HandleErrorInternal(Exception error) { | 46 protected void HandleErrorInternal(Exception error) { |
47 if (m_error != null) { | 47 if (m_error != null) { |