カテゴリ: 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 WebFormsのGridViewでデータ表示を完全マスター!初心者向けガイド
New2
VB.NET
VB.NETの例外処理とパフォーマンスの関係を初心者向けに完全解説
New3
ASP.NET
ASP.NET WebFormsでデータベースと連携!初心者でもできる保存と表示の基本
New4
VB.NET
VB.NETでStackTraceを利用してエラー箇所を特定する方法を完全解説!初心者向け例外処理入門
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのEnum(列挙型)の使い方を完全解説!初心者にも分かる定義と活用方法
No.2
Java&Spring記事人気No2
VB.NET
VB.NETのIf文の使い方と条件分岐を完全ガイド!初心者でもわかる基本構文と実例
No.3
Java&Spring記事人気No3
VB.NET
VB.NETのBoolean型(True/False)の使い方と条件分岐での活用方法を徹底解説!初心者でも理解できる基本
No.4
Java&Spring記事人気No4
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.5
Java&Spring記事人気No5
VB.NET
VB.NETの例外処理を完全ガイド!初心者でもわかるSystem.Exceptionの仕組み
No.6
Java&Spring記事人気No6
VB.NET
VB.NETプログラムの実行方法まとめ!Visual Studio・コマンドラインの使い方
No.7
Java&Spring記事人気No7
VB.NET
VB.NETのコンストラクタと初期化処理の書き方を初心者向けに解説
No.8
Java&Spring記事人気No8
VB.NET
VB.NETでの変数名の付け方とは?わかりやすくエラーの起きにくい命名規則を紹介