C++ は、構造化された、よりエレガントな例外処理メカニズムを提供します。この構造化されたメカニズムにより、プログラムの通常実行されるコードと例外処理部分を分離できるため、プログラムがより明確で読みやすくなります。
次に、例外処理の構造を見てみましょう。例外処理は 2 つの部分に分かれています。
try{//通常のプログラム実行文 throw(例外タイプ式);}catch(例外タイプ 1){//例外処理コード}catch(例外タイプ 2){//例外処理コード}catch(例外タイプ 3){ / /例外処理コード}//以下のコード
上記は、 try 、 throw 、 catch の3 つのキーワードを使用した C++ の例外処理のコード形式です。
コードが実行されると、最初に try コード ブロックに遭遇します。その機能は、例外処理メカニズムを開始し、try コードの実行中に発生した例外を検出し、throw の例外タイプの式によってスローされます。定数または変数式。次に、次の catch ステートメント ブロックと照合 (キャプチャ) され、対応するコードが実行されます。一致するタイプが見つからない場合は、実行を続行します。一致するものが見つからない場合、 terminate()関数が自動的に呼び出され、プログラムを終了します。デフォルトの関数はabort()です。
除算演算時に除数が0の場合の例外処理は以下のとおりです。
#include<iostream>usingnamespacestd;intmain(){inta,b;cin>>a>>b;try{if(b==0)throwerror!b<0;}catch(constchar*str){cout<<str <<endl;}catch(int){cout<<throwint<<endl;}return0;}
try では、b が 0 であることが判明すると、文字列がスローされ、その後、最初の catch が照合され、str の値が出力されることがわかります。理解する!