【发布时间】:2013-02-27 21:12:36
【问题描述】:
我有一些代码如下:
void MyClass::OnButtonClick()
{
int retVal = SomeDialog.DoModal();
if(retVal == MYCLASS_ERROR)
{
MessageBox("Error"...blah ...blah);
}
else if(retVal == IDOK) // IDOK is returned on clicking the 'OK' button
{
MessageBox("All is well"...blah ...blah);
}
}
-
SomeDialog只是显示一个进度条。出现任何错误时,调用EndDialog(MYCLASS_ERROR)会自动关闭进度条。只有成功完成后,用户才能在此处单击“确定”。 -
MYCLASS_ERROR是enum中的一个值,其中包含各种 返回类型和状态。
我发现在SomeDialog点击确定后,仍然显示错误信息!我挖得更深了,发现MYCLASS_ERROR = IDOK = 1。
所以我的问题是,我应该如何定义所有这些返回状态,使其不会与任何其他实现的状态发生冲突?这意味着,我的函数应该返回 任何 其他函数(或尽可能少的其他函数)未返回的值。
我想修改我的设计,使所有函数只返回 TRUE 或 FALSE。但是,这并非在所有情况下都是可行的。我也搜索了很多答案,到目前为止还没有找到任何答案。
感谢收看!
【问题讨论】:
标签: c++ windows mfc error-handling