function hoge(args) {
try {
res1 = func1(args)
res2 = func2(res1)
} catch (e) {
log(e)
return false
}
return true
}
// error.v
fu hoge(args) bool {
mut e := "error!"
defer {
if "" != e { log(e) }
}
res1 = func1(args) or { return false }
res2 = func2(res1) or { return false }
e = ""
return true
}
defer
を用いて、エラー時にログを残して、その場で処理を抜けることが出来ます。?
をつけてfn hoge(args int) ?bool {
res1 := func1(args) or { return error("error func1") }
res2 := func2(res1) or { return error("error func2") }
return true
}
fn main() {
hoge(0) or { log(err) }
}