Информация об изменениях

Сообщение Re[11]: Обработка ошибок от 26.09.2017 14:32

Изменено 26.09.2017 14:34 vsb

Re[11]: Обработка ошибок
Здравствуйте, MTD, Вы писали:

GZ>>Остаток процедуры будет запущен после выполнения асинхронно функции


MTD>Вот это и есть синхронный код, да он притворяется асинхронным, но сущность его именно такова.


Всё наоборот. Это асинхронный код, который притворяется синхронным.

> В настоящем асинхронном коде таких явных точек синхронизации нет, после выполнения операции вызывается обработчик — это позволяет лучше нагрузить процессор не тратя время на ожидание.


Это не точка синхронизации. Это указание кода, который будет выполнен при получении результата. С нагрузкой процессора тут проблем нет, поток будет выполнять следующий обработчик.
Re[11]: Обработка ошибок
Здравствуйте, MTD, Вы писали:

GZ>>Остаток процедуры будет запущен после выполнения асинхронно функции


MTD>Вот это и есть синхронный код, да он притворяется асинхронным, но сущность его именно такова.


Всё наоборот. Это асинхронный код, который притворяется синхронным.

> В настоящем асинхронном коде таких явных точек синхронизации нет, после выполнения операции вызывается обработчик — это позволяет лучше нагрузить процессор не тратя время на ожидание.


Это не точка синхронизации. Это указание кода, который будет выполнен при получении результата. С нагрузкой процессора тут проблем нет, поток будет выполнять следующий обработчик.

Собственно поинт в том, что если в языке есть удобные средства для работы с асинхронным кодом (в JavaScript, Kotlin, вроде в C# тоже такое есть), то исключения прекрасно подходят для работы с ошибками. Если таких средств нет, с асинхронным кодом работать очень неудобно в любом случае.