この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 21123|答える: 0

[出典] 例外と例外処理(C#プログラミングガイド)

[リンクをコピー]
掲載地 2015/04/12 22:22:03 | | |

C#言語の例外処理機能は、プログラム実行中に発生する予期せぬ状況や異常な状況に対処するのに役立ちます。 例外処理はtry、catch、finalのキーワードを使って特定の操作を試みて失敗を処理します。これらの操作は失敗する可能性はありますが、必要だと確信していて資源を整理したいなら試してみることが可能です。 共通言語ランタイム(CLR)、 NET Frameworkやサードパーティのライブラリやアプリケーションコードは例外を生成できます。 例外はthrowキーワードを使って作成されます。
多くの場合、例外はコードで直接呼び出されるメソッドではなく、呼び出しスタックの下位にある別のメソッドによって発生します。 この場合、CLRはスタックを拡張して、その特定の例外タイプに対するキャッチブロックを含むメソッドが存在するか確認し、そのようなメソッドを見つけたら最初に見つけたキャッチブロックを実行します。 コールスタックのどこにも適切なキャッチブロックが見つからなければ、プロセスは終了し、ユーザーにメッセージが表示されます。
この例では、ゼロで割られる状況が存在するかどうかを検出するために手法が用いられています。 もしあれば、そのエラーは見つかります。 例外処理がなければ、このプログラムは終了し、「DivideByZeroException Not Handled」エラーを発生します。
  1. class ExceptionTest
  2. {
  3.     static double SafeDivision(double x, double y)
  4.     {
  5.         if (y == 0)
  6.             throw new System.DivideByZeroException();
  7.         return x / y;
  8.     }
  9.     static void Main()
  10.     {
  11.         // Input for test purposes. Change the values to see
  12.         // exception handling behavior.
  13.         double a = 98, b = 0;
  14.         double result = 0;

  15.         try
  16.         {
  17.             result = SafeDivision(a, b);
  18.             Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
  19.         }
  20.         catch (DivideByZeroException e)
  21.         {
  22.             Console.WriteLine("Attempted divide by zero.");
  23.         }
  24.     }
  25. }
コードをコピーします






先の:C#は文字列に文字が含まれているかどうかを判定します
次に:ウェブサイトがDiscuzフォーラムプログラムによって作られたかどうかを判別してください
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com