std::system error
提供: C++入門
スポンサーリンク
std::system_error とは、さまざまな関数(OS固有のインターフェイスのような典型的な関数)によって送出される例外のタイプです。
読み方
- std::system_error
- えすてぃーでぃー しすてむ えらー
目次
概要
std::system_errorは、OS固有のエラーに関する例外を扱うクラスです。
ヘッダファイル
#include <system_error>
system_error1.cpp の例
ソースコード system_error1.cpp
#include <iostream> #include <system_error> #include <string> using namespace std; int main(int argc, char const* argv[]) { try { error_code ec( static_cast<int>(errc::invalid_argument), generic_category() ); throw system_error(ec, "System Error"); } catch (system_error& e) { cerr << e.code() << endl; cerr << e.what() << endl; } return 0; }
コンパイル
g++49 -std=c++11 -I/usr/local/lib/gcc49/include/c++/ \ -Wl,-rpath=/usr/local/lib/gcc49 system_error1.cpp -o system_error1
実行例
% ./system_error1 generic:22 System Error: Invalid argument
thread.cpp の例
ソースコード thread.cpp
#include <thread> #include <iostream> #include <system_error> int main() { try { std::thread().detach(); // わざとスレッドがないのにデタッチする } catch(const std::system_error& e) { std::cout << "Caught system_error with code " << e.code() << " meaning " << e.what() << '\n'; } return 0; }
コンパイル
g++49 -std=c++11 -I/usr/local/lib/gcc49/include/c++/ \ -Wl,-rpath=/usr/local/lib/gcc49 thread.cpp -o thread
実行例
% ./thread Caught system_error with code generic:22 meaning Invalid argument
関連項目
ツイート
スポンサーリンク