Try Catch

 処理をしている最中に何らかの処理によりエラーが発生する場合があります。通常、そのようなエラーが発生するとアプリケーションは停止してしまいます。しかし、エラーが発生したときは、特別な処理をして引き続きアプリケーションを動作させたいという場面が出てきます。ここでは、エラーが発生したときの対処方法を見てみましょう。

 オブジェクト指向言語ではエラーのことを「例外」と呼んでいます。エラーが発生する、つまり、例外が発生することを、「例外がスローされる」といいます。プログラムの中で実行中に例外がスローされた場合の処理は次のように記述します。

例外処理の書式
Try
 通常の処理
Catch 変数名 As 例外クラス名
 例外処理
Finnaly
 共通の処理
End Try

 Catch文は種類に応じて複数指定することができます。さまざまな種類の例外を一括処理させたい場合は、例外の種類を「Exception」型を指定することにより、実現できます。また、Finally文は省略することもできます。

○ プロジェクト

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

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

サンプルダウンロード

○ フォームデザイン

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

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

○ プログラム

 イベントプロシージャに次のように記述してください。

Form1.vb

  1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  2.  Try
  3.   '入力された数字を変換した数値を格納する変数
  4.   Dim num1 As Integer
  5.   Dim num2 As Integer
  6.   Dim ans As Double
  7.   'TextBox1を数字に変換
  8.   num1 = Integer.Parse(Me.TextBox1.Text)
  9.   'TextBox2を数字に変換
  10.   num2 = Integer.Parse(Me.TextBox2.Text)
  11.   '計算をする
  12.   ans = num1 / num2
  13.   '結果を表示する
  14.   Me.TextBox3.Text = ans
  15.  Catch ex As FormatException
  16.   MessageBox.Show("数値に変換できません。")
  17.  Catch ex As Exception
  18.   MessageBox.Show("その他のエラーです。")
  19.  End Try
  20. End Sub

○ 実行結果

実行結果
実行結果

 数字を入力する場所に文字を入力して「計算」ボタンをクリックすると、例外が発生してメッセージが表示されます。

前へ   次へ