カテゴリ: 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とMVCの違いを完全解説!初心者でもわかるWebアプリとAPIの基本
New2
ASP.NET
ASP.NET開発環境構築|コマンドライン(dotnet CLI)でASP.NETプロジェクトを作成する方法
New3
VB.NET
VB.NETで文字列を綺麗に整える!String.Formatと文字列補間の使い方
New4
ASP.NET
LinuxでASP.NET Coreを動かす手順|初心者でもわかる開発環境構築ガイド
人気記事
No.1
Java&Spring記事人気No1
VB.NET
VB.NETのJoinメソッドを徹底解説!バラバラの文字列を一つに結合する方法
No.2
Java&Spring記事人気No2
VB.NET
VB.NETの文字列置換を完全解説!初心者でもわかるReplaceメソッドの使い方
No.3
Java&Spring記事人気No3
VB.NET
VB.NETの配列(Array)の作り方と基本操作を徹底解説!初心者でもわかる入門ガイド
No.4
Java&Spring記事人気No4
VB.NET
VB.NETで文字列結合を高速化!StringBuilderクラスの使い方を完全ガイド
No.5
Java&Spring記事人気No5
VB.NET
VB.NETのList(Of T)の使い方を完全ガイド!初心者が最初に覚えるべきリスト操作
No.6
Java&Spring記事人気No6
VB.NET
VB.NETのDictionaryを完全ガイド!初心者でもわかる辞書の基本と応用
No.7
Java&Spring記事人気No7
VB.NET
VB.NETでStaticメソッドを定義する方法と活用例
No.8
Java&Spring記事人気No8
VB.NET
VB.NETのTrimで空白削除!初心者向け文字列整形完全ガイド