【发布时间】:2016-07-19 11:23:46
【问题描述】:
我目前正在尝试为特定类型的硬件异常处理编写函数。
程序应该测试某个条件是否为真,并启动一个简短的紧急程序并最终终止。
这个测试必须经常进行,而且应该很快。
另外,它是在一个项目中实现的,没有任何进一步的异常处理。
因此,将try 语句放在任何地方并不是一个真正的选择。
理想情况下,这样的函数应该是这样的:
void CheckForException(){
if (Condition == true){
cout << "The chosen configuration is very dangerous, do something different!" << endl;
someHardwareFunction();
someStatementEndingTheProgram;
}
}
原则上,我正在寻找someStatementEndingTheProgram。
我想,end()、terminate() 之类的都是不好的风格。
在这种情况下,没有try 的throw 语句可以工作吗?
【问题讨论】:
-
return;? cplusplus.com/forum/general/71073 -
return会结束整个程序,而不仅仅是函数CheckForException()? main() 中的任何内容都不应再执行 -
它会结束你所在的功能。你可以试试吗?
-
它确实结束了函数 CheckForException(),但其余代码中该函数之后的任何内容仍会执行。我只是用一个小示例代码对其进行了测试
-
您可以返回一个变量,告诉您是正常返回还是从异常中返回。所以你可以有
int CheckForException()和return 0用于异常和return 1在正常情况下。您只需检查退货并采取相应措施。
标签: c++ exception-handling try-catch