C++ Library - <exception>
Introduction
It is a standard exception class. All objects thrown by components of the standard library are derived from this class. Therefore, all standard exceptions can be caught by catching this type by reference.
Declaration
Following is the declaration for std::exception.
class exception;
Example
In below example for 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
Derived types(through logic_error)
Derived types(through runtime_error)
Derived types(through bad_alloc)
Derived types(through system_error, since C++11)
Sr.No. |
Derived types |
Definition |
1 |
ios_base::failure |
It is a base class for stream exceptions |
Member functions
Sr.No. |
Derived types |
Definition |
1 |
(constructor) |
It is constructor exception |
2 |
operator= |
It is a copy exception |
3 |
what |
It is used to get string identifying exception |
4 |
(destructor) |
It is a destroy exception |