VB.Net Tutorial/Development/Try Catch — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 16:40, 26 мая 2010
Содержание
Catch custom exception
Public Class MyException
Inherits System.Exception
Sub New(ByVal Message As String)
MyBase.New(Message)
End Sub
End Class
Public Class Tester
Public Shared Sub Main
Try
Console.WriteLine("About to generate custom exception")
Throw (New MyException("** Custom Message **"))
Catch Ex As MyException
Console.WriteLine("Custom Exception thrown " & Ex.Message)
End Try
End Sub
End Class
About to generate custom exception Custom Exception thrown ** Custom Message **
Catch different Exception with multiple catch statements
Imports System.IO
public class Tester
public Shared Sub Main
Dim y As Integer
Dim x As Integer
Dim z As Integer
Try
x = 1
y = 0
z = x / y
Catch e As DivideByZeroException
Console.WriteLine("You have attempted to divide by zero!")
y = 2
z = x / y
Catch e As OverflowException
Console.WriteLine("You have encountered an overflow exception. ")
y = 2
z = x / y
Catch e As System.Data.ConstraintException
Console.WriteLine("You have encountered a constraint exception. ")
y = 2
z = x / y
Finally
Console.WriteLine(x & "/" & y & " = " & z)
End Try
End Sub
End class
You have encountered an overflow exception. 1/2 = 0
Catch Exception throwed from a Method
Option Strict On
Imports System
Class Tester
Shared Sub Main( )
Console.WriteLine("Enter func1...")
Try
Console.WriteLine("Entering Try block...")
Func1( )
Console.WriteLine("Exiting Try block...")
Catch
Console.WriteLine("Exception caught and handled")
End Try
Console.WriteLine("Exit func1...")
End Sub
Public Shared Sub Func1( )
Console.WriteLine("Enter Func2...")
Throw New System.Exception( )
Console.WriteLine("Exit Func2...")
End Sub
End Class
Enter func1... Entering Try block... Enter Func2... Exception caught and handled Exit func1...
Catch specific Exception from a Method
Imports System
Class Tester
Public Shared 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
Public Shared Sub Main( )
Try
Dim a As Double = 5
Dim b As Double = 0
Console.WriteLine("Dividing {0} by {1}...", a, b)
Console.WriteLine("{0} / {1} = {2}",a, b, DoDivide(a, b))
Catch e As System.DivideByZeroException
Console.WriteLine("DivideByZeroException caught!")
Catch e As System.ArithmeticException
Console.WriteLine("ArithmeticException caught!")
Catch
Console.WriteLine("Unknown exception caught")
End Try
End Sub
End Class
Dividing 5 by 0... DivideByZeroException caught!
Catch without Exception type
public class Test
public Shared Sub Main
Dim strCaption As String
strCaption = "Answer"
Try
Console.WriteLine(strCaption.Substring(10, 1))
Catch
Console.WriteLine("An error has occurred.")
End Try
End Sub
End class
An error has occurred.
Filtered Exception
Option Strict Off
Public Module Tester
Public Sub Main
Dim a, b As Integer
Try
a = 0
b = 0
a = a/b
Catch e As DivideByZeroException When a = 0
Console.WriteLine("Division by zero error: " & _
"the first divisor must not be zero.")
Catch e As DivideByZeroException When b = 0
Console.WriteLine("Division by zero error: " & _
"the second divisor must not be zero.")
Catch e As Exception
Console.WriteLine("Error: " & e.Message)
End Try
End Sub
End Module
Error: Arithmetic operation resulted in an overflow.
Try Catch Exception
Option Strict On
Imports System
Class Tester
Shared Sub Main( )
Console.WriteLine("Enter Func2...")
Try
Console.WriteLine("Entering Try block...")
Throw New System.Exception( )
Console.WriteLine("Exitintg Try block...")
Catch
Console.WriteLine("Exception caught and handled")
End Try
Console.WriteLine("Exit func2...")
End Sub "Main
End Class "Tester
Enter Func2... Entering Try block... Exception caught and handled Exit func2...