Pular para o conteúdo

08 · Tratamento de Erros

Corpos de funções falíveis

Uma função que retorna T fails E expõe Result<T, E> ao chamador. Retorne os valores de sucesso diretamente; fail erro sai com Err. O operador ? propaga a falha até a fronteira Result mais próxima, incluindo um bloco attempt local.

Nesta página

Uma função que retorna T fails E expõe Result<T, E> ao chamador. Retorne os valores de sucesso diretamente; fail erro sai com Err. O operador ? propaga a falha até a fronteira Result mais próxima, incluindo um bloco attempt local.

Exemplo completo

Corpos de funções falíveis.

fallible_invoice.zolo
Playground
// An invoice rejects missing stock and exposes Result<int, str> to its caller.
fn subtotal(quantity: int, unit_price: int) -> int fails str {
    if quantity <= 0 { fail "quantity must be positive" }
    if unit_price < 0 { fail "price cannot be negative" }
    quantity * unit_price
}

fn invoice(quantity: int, unit_price: int) -> int fails str {
    let total = subtotal(quantity, unit_price)?
    total + 12
}

match invoice(3, 25) {
    .Ok(total) => print("Invoice: {total}"),
    .Err(message) => print("Cannot create invoice: {message}"),
}

Referência

Referência · Programa fonte

zolo run examples/features/fallible_invoice.zolo --no-cache

Veja também

Índice global

Encontre seu caminho pela Zolo

Experimente uma ideia

Comece por aqui

9 resultados

9 resultados

enespt-br