code when the error is handled by exceptions rather than returned values. Using conditions on the returned value to handle error becomes difficult to read and easy to forget to check errors. Роберт Мартин (aka дядюшка Боб)
AsyncEx Task методы 1) Исключения хранятся в Task 2) Исключения оборачиваются в AggregatedException 3) При формирование цепочек задач с параметром TaskCreationOptions.Attache dToParent мы можем потерять исключения (даже в AggregatedException)
Для управления потоками есть два вида исключений - ThreadAbortException, AppDomainUnloadedException • Потоки запрещено завершать в блоках catch и finally
gcAllowVerLargeObject - 4) • Не всегда причина - нехватка памяти ◦ Индекс не может быть больше 2,146,435,071 (2,147,483,591) • Трудно что-то делать дальше
b) Вне JIT -> AccessViolationException c) В JIT, но память вне раздела -> NullReferenceException SEHException • В остальных случая выбрасывается SEHException
отловить в .NET Core • Различное поведение в разных версиях .NET 1 - отсутсвует .NET 2 - можно отловить .NET 4 - по дефолту ловится в HandledProcessCorruptedStateException, С legacyCorruptedStateExceptionPolicy - все работает как в .NET 2 .NET Core - есть, отловить нельзя