Debug クラスの使い方 (VB.NET)

投稿日 2015/08/09

[Home]  | [Index]

概要

System.Diagnostics.Debug クラスを使うと、Visual Studio の出力ウィンドウにデバッグ用に文字列を表示したり、ある変数が条件を満たさない場合にメッセージボックスを表示することができます。また、デバッグ用メッセージはファイルなどに並行して出力できます。

出力ウィンドウの例
メッセージボックスの例

使い方

出力ウィンドウにメッセージを出力する

Visual Studio の出力ウィンドウにデバッグ用のメッセージを出力するには、以下のようなメソッドを使用します。


条件が合わない場合メッセージボックスを出力する (Assert)

Assert メソッドは、式の結果が偽の場合、メッセージボックスを表示して、続行か中断か無視かをプログラマに問い合わせします。Assert メソッドは次のようにオーバーロードされています。


メッセージをファイルにも出力する

Debug.Listeners コレクションにリスナを追加すると、デブッグメッセージをファイルなどへも出力できます。リスナとしては、System.Diagnostics.TextWriterTraceListener がよく使われます。


サンプルプログラム

Imports System.IO
Imports System.Text

Module Module1
    Const FILENAME As String = "C:\Temp\Debug.log"
    
    ''' 
    ''' Debug オブジェクトのテスト
    ''' 
    Sub Main(ByVal args As String())
        Dim dirName As String = My.Computer.FileSystem.GetFileInfo(FILENAME).DirectoryName
        Debug.Assert(My.Computer.FileSystem.DirectoryExists(dirName), "ログの出力先が不正です。")
        ' ログの準備
        Dim stream As StreamWriter = New StreamWriter(FILENAME, True, Encoding.Default)
        Debug.Listeners.Add(New TextWriterTraceListener(stream))
        Debug.AutoFlush = True
        Debug.Print("Debug クラスのテスト (1)")
        Debug.WriteLine("Debug クラスのテスト (2)")
        Debug.Assert(args.Length > 0, "パラメータの指定がありません。")
        Select Case args(0)
            Case 1
                Debug.Assert(args.Length >= 2)
            Case 2
                Debug.Assert(args.Length >= 2, "引数の数が2個未満です。")
            Case 3
                Debug.WriteLineIf(args.Length >= 2, "引数の数が2個以上です。")
        End Select
        Console.WriteLine(FILENAME & " にログを出力しました。")
    End Sub
    
End Module

 

 


 

このページの先頭へ