作者:seazz2001 | 来源:互联网 | 2023-08-24 15:06
背景:了解rust的都知道,在快速开发原型项目时,rust的错误处理机制非常省事儿,如unwrap()和expect(arg).在工作中不得不写大量的cc程序,被Rust宠坏了,已
背景:了解rust的都知道,在快速开发原型项目时,rust的错误处理机制非常省事儿,如unwrap()和expect(arg).在工作中不得不写大量的cc程序,被Rust宠坏了,已经不满足cc的异常处理了.怎么办?
尝试:用宏自己造呗.
#define unwrap(x) if(x) { printf("Panic at %s/%d in %s.\n",__FILE__,__LINE__,__FUNCTION__); return 0; }
宏名没大写是因为习惯了Rust,x用来装中断条件,如unwrap(p==nullptr);这里x更倾向函数返回值的错误条件.
注:此宏适用可从返回值判断是否出错的函数,抛异常的函数不适用!此宏仅适用快速原型开发,最后你可以集中精力处理和修改这些错误处理.