カテゴリ: VB.NET 更新日: 2026/01/02

VB.NETのFinallyブロックを完全ガイド!初心者でもわかる例外処理と後処理の基本

VB.NETのFinallyブロックで後処理を行う方法
VB.NETのFinallyブロックで後処理を行う方法

先生と生徒の会話形式で理解しよう

生徒

「VB.NETのTryとCatchは少し分かってきたんですが、Finallyって何をする場所なんですか?」

先生

「Finallyは、エラーが起きても起きなくても、必ず実行したい処理を書くための場所です。」

生徒

「失敗しても成功しても動くんですね?」

先生

「そうです。後片付け専用の場所だと考えると分かりやすいですよ。」

1. VB.NETのFinallyブロックとは何か

1. VB.NETのFinallyブロックとは何か
1. VB.NETのFinallyブロックとは何か

VB.NETのFinallyブロックとは、Try-Catch構文の中で使われる特別な場所です。 プログラムの処理がうまく進んだ場合でも、途中でエラーが発生した場合でも、 最後に必ず実行される処理を書きます。

プログラミング未経験の方は、「必ず通る出口」だとイメージしてください。 どんなルートで進んできても、最後は同じ出口を通るようなものです。 この考え方が、VB.NETの例外処理ではとても重要になります。

2. Finallyが必要になる理由

2. Finallyが必要になる理由
2. Finallyが必要になる理由

プログラムでは、ファイルを開いたり、データを読み込んだり、 目に見えない作業をたくさん行っています。 これらの作業は、使い終わったあとに必ず元の状態に戻す必要があります。

例えば、本を借りたら必ず返すようなものです。 エラーが起きたからといって返さないと、後で大きな問題になります。 Finallyブロックは、こうした後処理を忘れずに行うための安全装置です。

3. Finallyを含むTry-Catch構文の基本形

3. Finallyを含むTry-Catch構文の基本形
3. Finallyを含むTry-Catch構文の基本形

Finallyを使ったTry-Catch構文の基本形は、とてもシンプルです。 Tryで処理を行い、Catchでエラー対応を行い、Finallyで後処理を行います。 まずは形を覚えることが大切です。


Try
    Console.WriteLine("処理を開始します")
Catch
    Console.WriteLine("エラーが発生しました")
Finally
    Console.WriteLine("後処理を行います")
End Try

処理を開始します
後処理を行います

この例ではエラーが起きていないためCatchは実行されませんが、 Finallyは必ず実行されていることが分かります。

4. エラーが起きた場合でもFinallyは実行される

4. エラーが起きた場合でもFinallyは実行される
4. エラーが起きた場合でもFinallyは実行される

Finallyブロックの最大の特徴は、エラーが発生した場合でも必ず実行される点です。 これにより、処理の途中で問題が起きても、後片付けを確実に行えます。


Try
    Dim a As Integer = 10
    Dim b As Integer = 0
    Console.WriteLine(a / b)
Catch
    Console.WriteLine("計算中にエラーが発生しました")
Finally
    Console.WriteLine("計算処理を終了します")
End Try

計算中にエラーが発生しました
計算処理を終了します

このように、エラーが起きてCatchが実行されたあとでも、 Finallyが必ず動いている点に注目してください。

5. Finallyでよく行われる後処理の例

5. Finallyでよく行われる後処理の例
5. Finallyでよく行われる後処理の例

Finallyブロックでは、主に後処理と呼ばれる作業を行います。 後処理とは、使い終わったものを元に戻す作業のことです。 初心者のうちは、画面表示などの簡単な処理から理解すると良いでしょう。


Try
    Console.WriteLine("データ処理中です")
Catch
    Console.WriteLine("問題が発生しました")
Finally
    Console.WriteLine("後片付けが完了しました")
End Try

実際の開発では、ファイルを閉じる、接続を解除するなど、 見えない部分の後始末にFinallyが使われることが多いです。

6. Finallyを使うときの注意点

6. Finallyを使うときの注意点
6. Finallyを使うときの注意点

Finallyは必ず実行されるため、とても便利ですが、 重たい処理や失敗してはいけない処理を書くと、逆に問題になることがあります。 基本的には「必ず実行したい軽い後処理」を書く場所だと覚えてください。

VB.NETのFinallyブロックは、例外処理の中でも特に重要な役割を持っています。 TryとCatchだけで終わらせず、最後まで責任を持って処理を終えるための考え方として、 初心者のうちからしっかり身につけておくことが大切です。

カテゴリの一覧へ
新着記事
New1
ASP.NET
ASP.NET Web APIのモデルバインディングと入力検証を完全解説!初心者でもわかる仕組み
New2
ASP.NET
Visual Studio CodeでASP.NET開発を始める方法|初心者向け完全ガイド
New3
VB.NET
VB.NETのコーディング規約を完全解説!初心者でもわかる読みやすいコードの基本ルール
New4
VB.NET
VB.NETで日時の丸め処理を完全マスター!秒切り捨てや四捨五入の方法
人気記事
No.1
Java&Spring記事人気No1
ASP.NET
ASP.NET WebFormsとは?基本概念と仕組みを初心者向けにやさしく解説
No.2
Java&Spring記事人気No2
VB.NET
VB.NETで日付を文字列に変換!ToStringやFormatの使い方を徹底解説
No.3
Java&Spring記事人気No3
ASP.NET
ASP.NETとは?初心者向けにできることと特徴をやさしく解説
No.4
Java&Spring記事人気No4
VB.NET
VB.NETプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.5
Java&Spring記事人気No5
VB.NET
VB.NETのインストール方法まとめ!Visual Studioを使った環境構築手順
No.6
Java&Spring記事人気No6
VB.NET
VB.NETで日付と時間を比較・計算する方法!CompareとSubtractを完全解説
No.7
Java&Spring記事人気No7
ASP.NET
ASP.NETのパスワード管理を完全解説!初心者でもわかる安全な保存と運用の基本
No.8
Java&Spring記事人気No8
VB.NET
VB.NETで戻り値を返す関数の書き方を初心者向けに解説