Cpp Standard Library 简明教程
C++ Library - <exception>
Example
以下是在 std::exception 中的示例。
#include <thread>
#include <vector>
#include <iostream>
#include <atomic>
std::atomic_flag lock = ATOMIC_FLAG_INIT;
void f(int n) {
for (int cnt = 0; cnt < 100; ++cnt) {
while (lock.test_and_set(std::memory_order_acquire))
;
std::cout << "Output from thread " << n << '\n';
lock.clear(std::memory_order_release);
}
}
int main() {
std::vector<std::thread> v;
for (int n = 0; n < 10; ++n) {
v.emplace_back(f, n);
}
for (auto& t : v) {
t.join();
}
}
Derived types
Sr.No. |
Derived types |
Definition |
1 |
分配内存失败时抛出此异常 |
|
2 |
动态转换失败时抛出此异常 |
|
3 |
意外处理程序抛出此异常 |
|
4 |
错误调用时抛出此异常 |
|
5 |
typeid 为空指针时抛出此异常 |
|
6 |
这是一个错误的弱指针 |
|
7 |
它是流异常的基础类 |
|
8 |
这是一个逻辑错误异常 |
|
9 |
这是一个运行时错误异常 |
Derived types(through logic_error)
Sr.No. |
Derived types |
Definition |
1 |
这是一个域错误异常 |
|
2 |
这是一个 future 错误异常 |
|
3 |
这是一个无效参数异常 |
|
4 |
这是一个长度错误异常 |
|
5 |
这是一个超出范围的异常 |
Derived types(through runtime_error)
Sr.No. |
Derived types |
Definition |
1 |
它是一个溢出错误异常 |
|
2 |
它是一个范围错误异常 |
|
3 |
它是一个系统错误异常 |
|
4 |
它是一个下溢错误异常 |