Throw文

 前節で見たように、.NET Frameworkで用意されているクラスのメソッドで発生する可能性があるものは、MSDNライブラリにも載せられているので、その例外クラス名を使用して例外処理を記述できます。例外処理はそれ以外にも、自分で例外クラスを作って、発生(スロー)させることもできます。

 例外クラスを作成するには次のように記述します。

例外クラス定義の書式
Class 例外クラス名
 Inherits Exception
 …
End Class

 自分で作成したり、既に用意されている例外クラスを任意に発生させるには次のように記述します。

例外クラススローの書式
Throw 例外オブジェクト

○ プロジェクト

 プロジェクトを作成して確認してみましょう。

プロジェクトの種類 コンソール アプリケーション
プロジェクト名 ThrowTest

サンプルダウンロード

○ フォームデザイン

 次のように各コントロールを配置してください。

コントロールの配置例
コントロールの配置例

○ プログラム(例外クラス)

InputDataException.vb

  1. Public Class InputDataException
  2.  Inherits Exception
  3.  Public Overrides Function ToString() As String
  4.   Return "入力時エラーです。"
  5.  End Function
  6. End Class

○ プログラム(イベント処理)

Form1.vb

  1. Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
  2.  Try
  3.   '数字かどうかを確認する
  4.   Integer.Parse(Me.TextBox1.Text)
  5.   '入力値が1から5までかどうかを確認する
  6.   If Me.TextBox1.Text >= 1 And Me.TextBox1.Text <= 5 Then
  7.    End
  8.   Else
  9.    Throw New InputDataException()
  10.   End If
  11.  Catch ex As FormatException     '数字以外を入力したときの例外
  12.   MessageBox.Show("数字を入力してください。")
  13.  Catch ex As InputDataException  '範囲外を入力したときの例外
  14.   MessageBox.Show(ex.ToString())
  15.  Catch ex As Exception           'そのほかの例外
  16.   MessageBox.Show("そのほかのエラーです。")
  17.  End Try
  18. End Sub

○ 実行結果

実行結果
実行結果

 例外が発生したときに、独自のメッセージを出すことができました。独自の例外の種類を作って利用しています。

前へ