C ++の例外は、研究ノートをスローされます-throw
序文
C ++データ構造を学習するプロセスでは、多くの場合、コードブロック後に見られます:
template <class T>
T LinkList<T>::Get( int i)
{ //初始化
Node<T> *p=first->next;
int j=1;
while (j!=i) && (p!=NULL)
{
p=p->next;
j++;
}
if(p==NULL) throw “位置非法”;
return p->data;
}
これでスローを説明するための教師は次のとおりです。条件は、例外がスローされます。しかしスーツの後、しかし、次のエラーメッセージが表示されます:
彼らは覚えておくべきテキストに装って、持っていた好奇心の特定の用途に投げるようにします。
C ++の例外処理
C ++言語では、通常、例えば、例外処理を実装するために、スローとキャッチステートメントを試してみてください。
#include <iostream>
using namespace std;
void ThrowError()
{
int a;
cin >> a;
if (a == 0) throw 1;
else if (a == 1) throw"字符串:输入的为1";
else throw 100;
cout << "throw后面的语句" << endl;
}
int main()
{
try
{
ThrowError();
}
catch (int e)
{
switch (e)
{
case 1:
cout << "输入的为0" << endl;
break;
default:
cout << "输入的既不是0也不是1" << endl;
break;
}
}
catch (const char* e)
{
cout << e << endl;
}
cout << "catch后的语句" << endl;
return 0;
}
動作結果:
次に、コードブロック1の各部一つが説明によって
1.試行{}
正常聴力シスコンテンツtry文に従って文をしようとするプログラムの実行が実行された場合、コードの保護の後ろにカッコに従うことを試みる内の文。try文が正常に実行されている場合は、try文と後ろのキャッチは実行されません。プログラムの実行後に文が代わりに実行された後、最後のcatch文を追跡してみてください。try文が正しく実行されていない場合は逆に、漁獲量のステートメントが実行されます。
2.スロー
の基本的な構文スロー:
throw 表达式;//表达式可以是基本数据类型,也可以是类
例外は文によってスローされます。例としては、tryブロック内で実行することによって見つけることができ、ステートメントが成功した場合、それはもはや実行された後にスローされます例外がスローされます。
3.漁獲量は、
例外の実行中にtryブロックがスローされた場合、その例外はすぐにcatchブロックマッチングが行われた最初の「例外処理の種類」にジャンプし、例外の種類がスロースローされ、その後、ジャンプを実行します最後のブロックの後ろのキャッチが続きます。
例外がキャッチされていない場合、プログラムはすぐに状況が序文登場し、終了します。
追伸
適用し、動的メモリを解放する必要性に直面して投げプラクティスを投げるには、我々はより効果的な野生のポインタ、ポインタのぶら下がりやその他の問題として、見つけることができ、ポインタ操作を必要とします。したがって、記録します。