Errors

Wikipedia: Error handling
Tengo uses error(value) to create error values. Functions signal failure by returning an error, and callers check with is_error().

fmt := import("fmt")
divide := func(a, b) {
    if b == 0 {
        return error("division by zero")
    }
    return a / b
}
fmt.println(divide(10, 2))
result := divide(10, 0)
if is_error(result) {
    fmt.println("error: ", result.value)
}
vals := [divide(8, 2), divide(5, 0), divide(9, 3)]
for _, v in vals {
    if is_error(v) {
        fmt.println("got error: ", v.value)
    } else {
        fmt.println("got value: ", v)
    }
}

try it

5
error: division by zero
got value: 4
got error: division by zero
got value: 3
loading…