use*_*241 5 c++ exception-handling
会有什么不同如果我在不使用例外的情况下执行以下操作吗?
void func()
{
try
{
if (n > 5)
{
throw "n is greater than 5";
}
}
catch (const char *e)
{
MessageBox(0, e, 0, 0);
return;
}
}
Run Code Online (Sandbox Code Playgroud)
要么
void func()
{
if (n > 5)
{
MessageBox(0, "n is greater than 5", "Error", 0);
return;
}
}
Run Code Online (Sandbox Code Playgroud)
我可能会说你最好建议不要使用异常进行流量控制.顾名思义,例外情况是处理特殊情况.在上面的例子中,你显然希望n可能> 5,所以这并不是一个特例.如果您的应用程序有办法处理该情况,那么它应该优先于引发异常.
我确信有些情况下逻辑会下降,但总的来说,我认为这是一个很好的经验法则.
但从技术角度来说,没有太大差异(如果你做了很多的话可能会有表现).