34 lines
493 B
V
34 lines
493 B
V
module main
|
|
|
|
fn main() {
|
|
try_propagation() or { println('captured: $err') }
|
|
}
|
|
|
|
fn try_propagation() ? {
|
|
try_numbers() ?
|
|
}
|
|
|
|
fn try_numbers() ? {
|
|
for x in 1 .. 10 {
|
|
y := error_if_even(x) or { x + 1 }
|
|
println('$x rounded to $y')
|
|
error_if_prime(y) ?
|
|
}
|
|
}
|
|
|
|
fn error_if_even(num int) ?int {
|
|
if num % 2 == 0 {
|
|
return error('number is even')
|
|
}
|
|
return num
|
|
}
|
|
|
|
fn error_if_prime(num int) ?int {
|
|
for i in 2 .. num {
|
|
if num % i == 0 {
|
|
return error('$num is prime')
|
|
}
|
|
}
|
|
return num
|
|
}
|