четверг, 7 февраля 2019 г.

Go FAQ: Почему в Go нет исключений?

Создатели языка Go посчитали, что привязка исключений к элементу структуры управления, как в идиоме try-catch-finally, приводит к извилистому коду. Это также побуждает программистов маркировать слишком много обычных ошибок, таких как невозможность открыть файл, как исключительные.

Go использует другой подход. Для простой обработки ошибок, множественные возвращаемые значения Go позволяют легко сообщить об ошибке без перегрузки возвращаемого значения. Канонический тип ошибки в сочетании с другими функциями Go делают обработку ошибок приятной, но совершенно отличающейся от этого процесса на других языках.

В Go также есть пара встроенных функций для сигнализации и восстановления после действительно исключительных условий. Механизм восстановления выполняется только как часть состояния функции разрушаемой после ошибки, которой достаточно чтобы справиться с катастрофой, но не требует дополнительных контрольных структур и, при правильном использовании, может привести к чистому коду обработки ошибок.

Так как ошибки - это просто значения, вся мощь Go может быть использована при обработке ошибок.


Читайте также:


Комментариев нет:

Отправить комментарий