VB.Net/Development/Exception Message

Материал из VB Эксперт
Версия от 15:45, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Customize Exception Information

<source lang="vbnet"> Imports System Imports System.Text Imports System.Text.RegularExpressions Public Class MainClass

   Shared Sub Main(ByVal args As String())
            Try
                Console.WriteLine("Open file here")
                Dim a As Double = 5
                Dim b As Double = 0
                Console.WriteLine("{0} / {1} = {2}", a, b, DoDivide(a, b))
                Console.WriteLine("This line may or may not print")
                " most derived exception type first
            Catch e As System.DivideByZeroException
                Console.WriteLine( _
                  "DivideByZeroException! Msg: {0}", e.Message)
                Console.WriteLine( _
                   "Helplink: {0}", e.HelpLink)
                Console.WriteLine( _
                    "Stack trace: {0}", e.StackTrace)
            Catch
                Console.WriteLine("Unknown exception caught!")
            Finally
                Console.WriteLine("Close file here.")
            End Try
   End Sub
        " do the division if legal
        Shared Public Function DoDivide( _
            ByVal a As Double, ByVal b As Double) As Double
            If b = 0 Then
                Dim e As New System.DivideByZeroException( )
             e.HelpLink = "http://www.vbex.ru"
                Throw e
            End If
            If a = 0 Then
                Throw New System.ArithmeticException( )
            End If
            Return a / b
        End Function "DoDivide

End Class

      </source>


Display Exception, Inner Exception and stack trace

<source lang="vbnet"> Imports System Imports System.Data Imports System.Diagnostics public class MainClass

  Shared Sub Main()
     Try
         Dim Result As Double = 100 \ CInt("0")
         Console.WriteLine(Result)
     Catch E As System.DivideByZeroException
         Console.WriteLine("Message: " + E.Message)
         Dim F As Integer, S As New StackTrace(E)
         Console.WriteLine("StackFrame: ")
         For f = 0 To S.FrameCount - 1
             Console.WriteLine(S.GetFrame(f).ToString())
         Next F
     End Try
  End Sub

End Class


      </source>


Exception Help Link, Message and Trace

<source lang="vbnet"> Imports System Imports System.Text Imports System.Text.RegularExpressions

Public Class MainClass

        Shared Sub Main(  )
            Try
                Console.WriteLine("Open file here")
                Dim a As Double = 5
                Dim b As Double = 0
                Console.WriteLine("{0} / {1} = {2}", a, b, DoDivide(a, b))
                Console.WriteLine("This line may or may not print")
            " most derived exception type first
            Catch e As System.DivideByZeroException
                Console.WriteLine( _
                  "DivideByZeroException! Msg: {0}", e.Message)
                Console.WriteLine( _
                   "Helplink: {0}", e.HelpLink)
                Console.WriteLine( _
                    "Stack trace: {0}", e.StackTrace)
            Catch
                Console.WriteLine("Unknown exception caught!")
            Finally
                Console.WriteLine("Close file here.")
            End Try
        End Sub "Main
        Shared Public Function DoDivide(ByVal a As Double, ByVal b As Double) As Double
            If b = 0 Then
                Throw New System.DivideByZeroException(  )
            End If
            If a = 0 Then
                Throw New System.ArithmeticException(  )
            End If
            Return a / b
        End Function
  

End Class


      </source>


Exception Information

<source lang="vbnet"> Imports System Public Class MainClass

   Shared Sub Main(ByVal args As String())
       Try
           CalculateValue()
       Catch ex As Exception
           Console.WriteLine( "ex.Message:" & ex.Message )
           Console.WriteLine( "ex.StackTrace:" & ex.StackTrace )
           Console.WriteLine( "ex.ToString:" & ex.ToString )
       End Try
   End Sub
   
   Shared Private Function CalculateValue() As Integer
       Return 1 \ Integer.Parse("0")
   End Function

End Class

      </source>