Исключения и возвраты статуса статья именует их как коды состояния возврата :
В общем, существует два способа обработки ошибок, поскольку онипереход от слоя к слою в программном обеспечении: создание исключений и возвращение кодов состояния ... При возврате состояния для обработки ошибок был взят ценный канал связи (возвращаемое значение функции).
Лично я бы также назвал их кодами состояния, аналогично кодам состояния HTTP (если мы притворяемся, что ответ HTTP похож на возврат функции).
В качестве примечания, кроме исключений и статуса возвратакодов, также существует монадный подход к обработке ошибок, который в некотором смысле объединяет первые два подхода. Например, в Scala монаду Either
можно использовать для указания возвращаемого значения, которое может выражать как код состояния ошибки, так и обычное счастливое значение без необходимости блокировать часть домена для кодов состояния:
def divide(a: Double, b: Double): Either[String, Double] =
if (b == 0.0) Left("Division by zero") else Right(a / b)
divide(4,0)
divide(4,2)
который выводит
res0: Either[String,Double] = Left(Division by zero)
res1: Either[String,Double] = Right(2.0)