OxL Справочник OxL
РусскийEnglish

@ @error

@error

Применяется к: data, enum

Раздел: §6.5

Синтаксис

ebnf
Attr        = "@" Path [ "(" [ AttrArgs ] ")" ] ;

Грамматика: Прил. A

Определяется в

  • 6.5 Ошибки — Исключений нет. Ошибка — значение типа, помеченного @error, возвращаемое через объединение.
  • 16.3 gRPC и protobuf — import proto "payments.proto" генерирует extern service и типы; вызовы — как к обычным сервисам через connect.

Примеры

oxl
@error data NotFound { what: str }
@error enum PayError { Declined(reason: str), Fraud }

fn charge(card: Card, sum: Money) -> Receipt | PayError | NetError  net {
  let token = Vault.tokenize(card)?          // ? пробрасывает ошибки вызова
  if sum <= Money.zero() { fail PayError.Declined("zero sum") }
  Bank.pay(token, sum)
}

— 6.5 Ошибки

Связанные диагностики

fail-type, question-context, unhandled-error, import-skip

См. также