VB.Net/Development/Exception Message
Содержание
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>