C#でtry/catchブロックを使用するにはどうすればよいですか?
例外(Exception)とは、プログラムの実行中に発生した異常な状態を検出し、プログラムのある部分から別の部分へ制御を移すための仕組みです。C#の例外処理は、try、catch、finally、throw という4つのキーワードを基盤として構築されています。
例外処理の4つのキーワード
try ― 例外が発生する可能性のあるコードブロックを示します。tryブロックの後には、1つ以上のcatchブロックが続きます。
catch ― 例外を捕捉(キャッチ)するためのキーワードです。プログラム内で問題を処理したい箇所に例外ハンドラを配置し、発生した例外を受け取って適切に対処します。
finally ― 例外の発生有無にかかわらず、必ず最後に実行されるコードブロックです。ファイルやデータベース接続などのリソース解放処理に利用されることが多いです。
throw ― 例外を明示的に発生させる(スローする)ために使用されるキーワードです。独自の例外を投げる際にも使われます。
C#でのtry、catch、finallyの使用例
以下は、C#でtry、catch、finallyを組み合わせて使用する具体的な例です。このサンプルでは、ゼロによる除算(DivideByZeroException)を捕捉して処理しています。
コード例
using System;
namespace Demo {
class DivNumbers {
int result;
DivNumbers() {
result = 0;
}
public void division(int num1, int num2) {
try {
result = num1 / num2;
} catch (DivideByZeroException e) {
Console.WriteLine("Exception caught: {0}", e);
} finally {
Console.WriteLine("Result: {0}", result);
}
}
static void Main(string[] args) {
DivNumbers d = new DivNumbers();
d.division(25, 0);
Console.ReadKey();
}
}
}出力結果
Result: 0
コードの解説
この例では、division(25, 0) を呼び出しているため、25を0で割ろうとして DivideByZeroException が発生します。tryブロック内で例外がスローされると、直ちにcatchブロックへ制御が移り、例外の内容が出力されます。その後、例外の有無に関係なくfinallyブロックが実行され、変数resultの値である「0」が表示されます。
このように、try/catchブロックを活用することで、予期しないエラーによってプログラムが強制終了するのを防ぎ、安定性の高いアプリケーションを構築できます。
-
Microsoft Publisherのビルディングブロック機能の使い方を徹底解説
Microsoft Publisherのビルディングブロック(Building Blocks)とは、書式設定済みのテキストやデザイン要素をひな形として簡単に挿入できる便利な機能です。ビルディングブロックを活用すれば、コンテンツ作成にかかる時間を大幅に短縮できます。Publisherでは、ビルディングブロックは既定でテンプレートとして保存されており、ユーザーが自由にカスタマイズすることも可能です。 Publisherのビルディングブロックの種類 この記事では、「ページパーツ」「カレンダー」「罫線とアクセント」「広告」の4種類のビルディングブロックの具体的な使い方を解説します。 ページパーツ(P
-
MacでVRを使う方法とは?SteamVR対応やGPUエンクロージャなど最新情報を解説
世界的に人気を博すHTC ViveやOculus Riftが世界各地で購入可能になった今、多くのMacユーザーが「MacでもVRは使えるのか?使えるならどうやって?」と疑問を抱いています。 かつてOculusのCEOパーマー・ラッキー氏は、「現行のどのMacBookもOculus Riftを動かすには性能が足りない」と発言していました。そこで今回は、MacでVRを動かす可能性について調査しました。結論から言うと、状況は決して明るいものではありません。詳しく見ていきましょう。 関連記事:Apple製VRヘッドセットの発売日に関する噂 MacでVRは使えるのか? 技術的にはMacでVRを動かすこと