VB.NETでカスタム例外クラスを作成する方法を完全解説!初心者でもわかる例外処理入門
生徒
「VB.NETの例外処理で、エラーの名前を自分で決めることってできるんですか?」
先生
「できますよ。それをカスタム例外クラスと呼びます。」
生徒
「カスタムってことは、オリジナルのエラーを作れるってことですか?」
先生
「その通りです。VB.NET初心者の方でも、順番に理解すれば難しくありません。」
1. カスタム例外クラスとは何か?
VB.NETのカスタム例外クラスとは、自分で名前や意味を決められるオリジナルの例外です。 例外とは、プログラムが実行中に「これは困った」と判断した出来事を知らせる仕組みでした。
既に用意されている例外には「0で割った」「文字を数字にできない」などがありますが、 現実のプログラムでは「会員番号が不正」「年齢がルール外」など、もっと分かりやすいエラーを作りたい場面があります。
そんなときに使うのが、VB.NETでカスタム例外クラスを作成する方法です。
2. なぜカスタム例外が必要なのか
初心者の方は「普通のExceptionで十分では?」と思うかもしれません。 しかし、カスタム例外を使うと、何が原因で失敗したのかがとても分かりやすくなります。
たとえば、病院の受付で「エラーです」とだけ言われるよりも、 「保険証が見当たりません」と言われた方が対応しやすいですよね。
VB.NETのカスタム例外も同じで、エラーの意味を名前で表現できるのが大きなメリットです。
3. カスタム例外クラスの基本的な作り方
VB.NETでカスタム例外クラスを作るときは、必ずSystem.Exceptionを継承します。 継承とは「親の機能を引き継ぐ」ことです。
ここでは「年齢が不正なとき」に使う例外クラスを作ってみます。
Public Class AgeException
Inherits Exception
Public Sub New(message As String)
MyBase.New(message)
End Sub
End Class
これだけで「AgeException」というカスタム例外クラスが完成です。 System.Exceptionの仕組みをそのまま使っているので、難しい処理はありません。
4. カスタム例外を発生させてみよう
次に、作成したカスタム例外クラスを実際に使ってみます。 ここでは年齢が0未満のときに例外を発生させます。
Module Module1
Sub Main()
Dim age As Integer = -1
If age < 0 Then
Throw New AgeException("年齢は0以上で入力してください")
End If
Console.WriteLine("年齢:" & age)
End Sub
End Module
Throwは「例外を投げる」という意味の命令です。
プログラムが「これ以上進めない」と判断したときに使います。
5. カスタム例外をCatchで受け取る方法
発生させたカスタム例外は、Try ~ Catchで受け取ることができます。
名前が付いているので、どのエラーか一目で分かります。
Try
Dim age As Integer = -5
If age < 0 Then
Throw New AgeException("年齢が不正です")
End If
Catch ex As AgeException
Console.WriteLine(ex.Message)
End Try
年齢が不正です
このように、VB.NETではカスタム例外専用のCatchを書くことができます。 これにより、エラー処理がとても読みやすくなります。
6. メッセージ以外の情報を持たせる考え方
カスタム例外クラスには、必要であれば情報を追加できます。 ただし、初心者の段階では「メッセージを分かりやすくする」だけで十分です。
重要なのは「このエラーは何を意味しているのか」を、 プログラムを読む人に伝えることです。
VB.NETの例外処理は、人に優しいプログラムを作るための仕組みでもあります。
7. カスタム例外を使うときの考え方
カスタム例外クラスは、なんでもかんでも作れば良いわけではありません。 「これは特別に伝えたい失敗だ」と感じたときに使うのがポイントです。
VB.NETで例外処理を学ぶと、プログラムの安全性や読みやすさが大きく向上します。 System.Exceptionを土台にしたカスタム例外は、その第一歩です。
8. 初心者がつまずきやすいポイント
よくある勘違いとして「エラーが出ないようにするための仕組み」と思われがちですが、 例外処理は「エラーが起きたときの対応」を書くためのものです。
VB.NETでカスタム例外クラスを作成する方法を知ると、 エラーが怖いものではなく、味方だと感じられるようになります。