v2 / vlib / v / tests / interfaces / interface_err_msg_print_test.v
27 lines · 23 sloc · 344 bytes · 442544633d0f6a2ab3f6bafcec126fb09b683f51
Raw
1struct MyError {
2 code int
3 state string
4}
5
6pub fn (e MyError) msg() string {
7 return 'something went wrong'
8}
9
10pub fn (e MyError) code() int {
11 return e.code
12}
13
14fn foo() ! {
15 return MyError{}
16}
17
18fn test_interface_err_msg_print() {
19 foo() or {
20 if err is MyError {
21 eprintln(err.msg())
22 exit(err.code())
23 } else {
24 panic(err)
25 }
26 }
27}
28