引发异常不一致
Exception Throwing Inconsistency
我一直在玩弄错误处理,并编写了一个简短的程序来尝试理解异常处理。 我编写了以下程序,其中用户输入一个数字,程序捕获 cin 引发的任何异常:
#include <iostream>
int main()
{
std::cin.exceptions(std::cin.failbit);
int ReturnCode = 0;
try{
float Number;
std::cout << "Number: n";
std::cin >> Number;
std::cout << Number << "n";
}
catch(...){
std::cerr << "Input error n";
std::cin.clear();
char BadInput[5];
std::cin >> BadInput;
ReturnCode = 1;
};
char StopChar;
std::cout << "Press a key and enter: n";
std::cin >> StopChar;
return ReturnCode;
}
我在 Xcode 中编译了代码,但在给出字符串时没有引发异常。 但是,当我使用终端和命令g++ main.cpp -Wall -Wextra -o program
编译它时,一切正常。 这是怎么回事,用 Xcode 编译和使用终端有什么区别? 任何帮助将不胜感激!
这
似乎是libc ++中的一个错误。
从 Xcode 编译时,默认设置是将 clang 与 libc++ 一起使用。而 g++ 使用 libstdc++。在 Xcode 中将库设置为 libstdc++ 会导致引发异常。
相关文章:
- 大于65535的C++数组[size]引发不一致的溢出
- 在 C++(和 C)中进行类型转换时明显不一致
- 填充上编译器生成的复制构造函数之间的不一致
- 犰狳的 print() 方法和 cout 在从 Rcpp 调用时顺序不一致
- CreateDIBSection为同一图像返回不一致的位图位值
- 在 Qml 中从 QSqlTableModel 中删除单行时视图不一致
- 模板参数推导不一致
- 声明中不一致的no是否违反ODR?
- 如何删除分支因子不一致的树,最大为 30,40
- 从 C++ 函数与 Python 函数返回的不一致值用于偏斜正态分布
- 从 C 字符串构造 std::string 与从另一个 std::string 构造 std::string 不一致
- 这种比较是否不一致(或者存在其他问题)?
- 以下可变参数模板行为是否不一致?
- 如何修复我的链表读数不一致的问题?
- 在C++17中,为什么类模板和函数模板的指针类型推导明显不一致
- void 函数中的指针参数返回不一致的值
- 如何查找导致结果不一致的代码
- 跨平台 mySQL 与字符集不一致
- C++:不一致的 std::p ow( 类型 ) 定义
- 引发异常不一致