前回はcatchで受け取る例外の型を指定したが、型を指定しないですべての例外を受け取る方法もある。
catch(...) { // 処理 }
...は省略記号。これですべてのデータ型と一致する。
#include <iostream> using namespace std; void func(int i) { if (i!=0) throw i; } void main() { try { func(0); func(1); } catch(...) { cout << "catch " << endl; } }
次のように、switchでのdefaultのような使い方もできる。
catch(int i) { // int型の例外のときの処理 } catch(...) { // それ以外の例外のときの処理 }