common_error/
handle_error_macro.rs1
2#[macro_export]
17macro_rules! handle_error {
18 (result: $result:expr, panic:$xx:expr, etype: $etype:ty , $($arg:tt)*)=> {
19 match $result {
20 Ok(re) => {re}
21 Err(err) => {
22 let (_, msg) =<$etype>::throw($($arg)*,err.to_string().as_str());
23 tracing::error!(msg);
24 panic!($xx);
25 }
26 }
27 };
28 (result: $result:expr, panic:$xx:expr, etype: $etype:ty , $($arg:expr)*)=> {
29 match $result {
30 Ok(re) => {re}
31 Err(err) => {
32 let (_, msg) =<$etype>::throw($($arg)*,err.to_string().as_str());
33 tracing::error!(msg);
34 panic!($xx);
35 }
36 }
37 };
38
39 (result: $result:expr, etype: $etype:ty , $($arg:tt)*)=> {
40 match $result {
41 Ok(re) => {re}
42 Err(err) => {
43 let (err, msg) =<$etype>::throw($($arg)*,err.to_string().as_str());
44 tracing::error!(msg);
45 return Err(err);
46 }
47 }
48 };
49 (result: $result:expr, etype: $etype:ty , $($arg:expr)*)=> {
50 match $result {
51 Ok(re) => {re}
52 Err(err) => {
53 let (err, msg) =<$etype>::throw($($arg)*,err.to_string().as_str());
54 tracing::error!(msg);
55 return Err(err);
56 }
57 }
58 };
59}