Если TaskCanceledException — штатная ситуация и нет смысла ее специально как-то обрабатывать. Не хочется ее отлавливать и писать пустой блок catch в нескольких местах.
Если написать так:
var task = Task.Run(() => { Console.WriteLine(1); })
.ContinueWith(t => { }, TaskContinuationOptions.OnlyOnCanceled);
— то при отмене задачи — все ОК. А вот если задача не была отменена — то уже сам ContinueWith вызывает TaskCanceledException, ибо так тупо сделали — раз ContinueWith не была исполнена — значит задачу пришлось отменить а значит опять таки злополучный TaskCanceledException.
Как лучше игнорить?