首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >if/else中的流提取

if/else中的流提取
EN

Stack Overflow用户
提问于 2010-06-22 22:13:33
回答 2查看 111关注 0票数 0

假设流提取不会失败,这将是

代码语言:javascript
运行
复制
if( !(stream >> token) )
    throw runtime_error( "Unexpected end of recipe." );
else if( token == "something" )
    // do something
else
    throw runtime_error( "Unknown token" );

像这样工作

代码语言:javascript
运行
复制
if( !(stream >> token) )
    throw std::runtime_error( "Unexpected end of recipe." );

if( token == "something" )
    // do something
else
    throw std::runtime_error( "Unknown token" );

(stream = std::stringstream和token = std::string),预期的结果是token包含下一个...令牌..。从小溪里?有没有更好的方法来处理错误?像cerr << "error whatever" << endl; exit();之类的,或者我的std::runtime_error足够好了吗?

EN

Stack Overflow用户

发布于 2010-06-22 22:32:30

您的假设是正确的,这两个代码片段的行为是相同的。

异常是处理C++中意外情况的标准方法,因此我不建议使用另一种方法来处理错误,除非这种错误预计会在常见情况下发生。如果是这样的话,我会建议在你的函数上使用某种返回值通知。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3093959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档