首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用iostream处理错误

使用iostream处理错误
EN

Stack Overflow用户
提问于 2014-03-25 14:25:32
回答 3查看 2.9K关注 0票数 4

我从2008年开始写[Bjarne_Stroustrup]Programming-Principles-and-Practice-Using-C++的书,5.关于Errors使用std_lib_facilities.h和函数error的章节。

下面是一个例子:

代码语言:javascript
复制
if(x<=0) error("non-positive x");
if(y<=0) error("non-positive y");
int area1=area(x,y);

因为我使用的是没有std_lib_facilities.h的Visual 2012,所以这个错误处理程序无法工作!iostream的错误处理功能是什么?在哪里可以找到和研究它?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-25 14:30:37

C++标准库的头文件(iostreamvector等)最后不要有.h。(然而,大多数第三方库都使用.h。)由于std_lib_facilities.h确实有一个.h,所以有理由假设它不是一个标准库,也不是VisualC++应该提供的东西。

在这种情况下,一个快速的谷歌搜索显示,它提供了您的书,并可从facilities.h下载。

票数 6
EN

Stack Overflow用户

发布于 2014-03-25 14:33:43

std_lib_facilities.h是由Bjarne编写的助手头。

它提供了最常见的标准标头(在全局命名空间中)和最小的异常/错误支持。

您可以在快捷方式:here标准库访问头下找到它。

错误函数定义如下:

代码语言:javascript
复制
// error() simply disguises throws:
inline void error(const string& s)
{
    throw runtime_error(s);
}

Visual Studio

Here你可以找到一个关于如何让std_lib_facilities.h在VS上工作的教程。

学生也有笔记..。

学生:请不要试着理解标题的细节。一切都会得到解释的。这个标题主要被使用,这样你就不必一次就理解所有的概念。

票数 5
EN

Stack Overflow用户

发布于 2014-03-25 14:30:04

由于im使用Visual 2012中没有"std_lib_facilities.h",此错误处理程序无法工作!碘流的错误处理功能是什么?我在哪里可以找到和研究它?

std_lib_facilities.h报头不是c++标准提供的东西。因此,在VS2012中会出现这样的错误。您需要编写自己的逻辑,并将其放入某个文件并将其包含到您的程序中。

您可以实现自己的基本版本的error()函数如下:

代码语言:javascript
复制
#include<iostream>
template<typename T>
void error(const T& msg) {
 std::cerr<<msg<<std::endl;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22637487

复制
相关文章

相似问题

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