c++異常處理函數
阿新 • • 發佈:2019-03-01
參數類型 拋出異常 nbsp return () 捕獲異常 pre str throw
註意: throw 拋出異常,catch 捕獲異常,try 嘗試捕獲異常
catch 中的參數類型要和throw 拋出的數據類型一致
try
{
//可能拋出異常的語句
}
catch (異常類型1)
{
//異常類型1的處理程序
}
catch (異常類型2)
{
//異常類型2的處理程序
}
// ……
catch (異常類型n)
{
//異常類型n的處理程序
}
例1:
#include <iostream>
#include <stdlib.h>
using namespace std; enum index{underflow, overflow}; int array_index(int *A, int n, int index); int main() { int *A = new int[10]; for(int i=0; i<10; i++) A[i] = i; try { cout<<array_index(A,10,5)<<endl; cout<<array_index(A,10,-1)<<endl; cout<<array_index(A,10,15)<<endl; } catch(index e) { if(e == underflow) { cout<<"index underflow!"<<endl; exit(-1); } if(e == overflow) { cout<<"index overflow!"<<endl; exit(-1); } } return 0; } int array_index(int *A, int n, int index) { if(index < 0) throw underflow; if(index > n-1) throw overflow; return A[index]; }這是用來處理數組越界的代碼,throw 拋出的是枚舉型的數據,因此catch 中的數據類型也是相應的枚舉型
C++語句中有默認的異常處理函數,會對異常做出處理。
c++異常處理函數