试图发挥通用功能,显示错误信息,有可能在信息显示后退出该方案。
我希望这一功能能够显示发生错误的来源档案和线。
论点清单:
1.char *desc //description of the error
2.char *file_name //source file from which the function has been called
3.u_int line //line at which the function has been called
4.bool bexit=false //true if the program should exit after displaying the error
5.int code=0 //exit code
由于(4)和(5),在职能定义中需要使用缺省理由,因为除非方案退出,否则不会要求具体指明这些理由。
由于(2)和(3),需要采用一种与原功能相适应的宏观方法,例如:
#define Error(desc, ???) _Error(desc,__FILE,__LINE__, ???)
问题是,看不出这2个要素应如何共同工作。
如何看待:
if(!RegisterClassEx(&wndcls))
Error("Failed to register class",true,1); //displays the error and exits with exit code 1
if(!p)
Error("Invalid pointer"); //displays the error and continues