Way to C++: 6. Exception Safe
前言
考慮以下函數:
int Calculate(int n) {
int *arr1 = new int[n];
int *arr2 = new int[n];
delete[] arr1;
delete[] arr2;
return n+1;
}
看起來很好,在一開始 new 的陣列在離開函數時都釋放掉了。
但是其實會有問題的: 假如在 arr2 new 的時候,記憶體不夠,那該行就會拋出 Exception,直接離開 Cal...
notes.mukyu.dev1 min read