移植Rust的unwrap到C++的尝试

背景:了解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更倾向函数返回值的错误条件.

注:此宏适用可从返回值判断是否出错的函数,抛异常的函数不适用!此宏仅适用快速原型开发,最后你可以集中精力处理和修改这些错误处理.

猜你喜欢

转载自www.cnblogs.com/catgo/p/9776207.html