我知道STL会抛出内存分配错误,或者如果包含的类型抛出其构造函数/赋值运算符.
否则,显然'少数'STL方法可能抛出其他异常.每个人似乎都提到的例子是vector :: at(),但我无法找到其他任何地方的列表.
有谁知道这样的清单?
Ton*_*roy 17
不会100%准确,并且适用于C++ 03,但基于通过GCC 4.3.4轻击的半小时努力包括,忽略tr1和ext但包括iostream.至关重要的是,其中一些检查可能是由于这种实施更倾向于采用更具防御性的编码,并且可能不会在标准中强制要求并且普遍可用....
bitset
std::overflow_error- .to_ulong()当太多位不适合无符号长std::out_of_range- operator[]()尝试过去结束new
std::bad_alloctypeinfo
std::bad_cast无效dynamic_cast尝试ios
std::ios_base::failure 使用异常掩码进行错误报告时string
out_of_range- at/ append/ assign/ insert/ erase/ replace/ copy/substrlength_error:尝试超过max_size()期间reserve或隐式调整大小(例如assign/ insert/ +=等)locale
std::bad_cast 如果locale不包含类型的构面 Facetstd::runtime_error 在各种null-pointer/undefined-facet情况下deque/vector
length_error:尝试reserve()或隐含增长>max_size()out_of_range: at()map
std::out_of_range: at()| 归档时间: |
|
| 查看次数: |
2020 次 |
| 最近记录: |