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

VB.NETの複数Catchを完全ガイド!初心者でもわかる例外を分類して処理する方法

VB.NETの複数Catchブロックで例外を分類処理する方法
VB.NETの複数Catchブロックで例外を分類処理する方法

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

生徒

「VB.NETのエラーって、全部同じCatchで処理しないといけないんですか?」

先生

「いいえ、VB.NETでは複数のCatchを使って、エラーの種類ごとに処理を分けることができます。」

生徒

「エラーの種類ごとに分けると、何が良いんですか?」

先生

「原因に合った対応ができるので、プログラムが分かりやすく安全になります。」

1. VB.NETの例外処理とCatchの基本

1. VB.NETの例外処理とCatchの基本
1. VB.NETの例外処理とCatchの基本

VB.NETの例外処理とは、プログラムの実行中に起きる問題、 つまりエラーに対して正しく対応するための仕組みです。 このとき中心になるのがTry、Catch、Finallyです。

Catchは、例外が発生したときに実行される処理を書く場所です。 これまでは「とりあえずCatchで受け取る」という使い方を してきた人も多いかもしれません。

2. 例外にも種類があるという考え方

2. 例外にも種類があるという考え方
2. 例外にも種類があるという考え方

一口にエラーと言っても、その内容はさまざまです。 例えば、0で割ってしまった計算ミス、文字を数字として 扱おうとした入力ミスなどがあります。

VB.NETでは、これらを「例外クラス」という形で分類しています。 クラスとは、性質ごとにまとめた箱のようなものだと考えると 初心者でも理解しやすくなります。

3. 複数Catchブロックの基本構文

3. 複数Catchブロックの基本構文
3. 複数Catchブロックの基本構文

VB.NETでは、Catchを複数並べて書くことができます。 上から順番にチェックされ、最初に一致したCatchが実行されます。 これを例外の分類処理と呼びます。


Try
    Dim a As Integer = 10
    Dim b As Integer = 0
    Console.WriteLine(a / b)
Catch ex As DivideByZeroException
    Console.WriteLine("0で割ることはできません")
Catch ex As Exception
    Console.WriteLine("その他のエラーが発生しました")
End Try

0で割ることはできません

このように、特定の例外を先に書くのがポイントです。 最後にExceptionを書くことで、想定外のエラーも受け止められます。

4. 入力ミスを分類して処理する例

4. 入力ミスを分類して処理する例
4. 入力ミスを分類して処理する例

次は、文字を数値に変換する場面を考えてみましょう。 ユーザーが数字以外を入力した場合、変換エラーが発生します。 これも複数Catchで分けて処理できます。


Try
    Dim text As String = "abc"
    Dim number As Integer = Integer.Parse(text)
    Console.WriteLine(number)
Catch ex As FormatException
    Console.WriteLine("数字を入力してください")
Catch ex As Exception
    Console.WriteLine("予期しないエラーが発生しました")
End Try

数字を入力してください

FormatExceptionは、形式が正しくないときに発生する例外です。 こうして原因ごとにメッセージを変えられるのが大きな利点です。

5. Catchの順番がとても重要な理由

5. Catchの順番がとても重要な理由
5. Catchの順番がとても重要な理由

複数Catchを書くときに特に注意したいのが順番です。 Exceptionはすべての例外の元になる存在なので、 先に書いてしまうと、後のCatchが実行されなくなります。

例えるなら、細かいルールよりも大きなルールを先に 適用してしまうようなものです。 必ず、具体的な例外から順に書くようにしましょう。

6. 複数Catchを使うメリット

6. 複数Catchを使うメリット
6. 複数Catchを使うメリット

複数Catchを使うことで、エラーの原因に応じた対応ができます。 ユーザーにとって分かりやすいメッセージを出したり、 プログラム内部で正しい対処を行ったりできます。

すべて同じCatchで処理すると、原因調査が難しくなります。 分類して処理することは、読みやすく安全なコードを書くための 基本的な考え方です。

7. 初心者が覚えておきたい考え方

7. 初心者が覚えておきたい考え方
7. 初心者が覚えておきたい考え方

初心者のうちは、すべての例外を完璧に理解する必要はありません。 まずは「エラーにも種類がある」「Catchは複数書ける」 という点を押さえるだけで十分です。

VB.NETの例外処理は、プログラムを守るための仕組みです。 複数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での変数名の付け方とは?わかりやすくエラーの起きにくい命名規則を紹介