VB.Net Tutorial/Development/Finally — различия между версиями
Admin (обсуждение | вклад) м (1 версия)  | 
				Admin (обсуждение | вклад)  м (1 версия)  | 
				
(нет различий) 
 | |
Текущая версия на 12:53, 26 мая 2010
Содержание
Close Stream in Finally statement
Imports System.IO
public class Test
   public Shared Sub Main
        Dim srReader As IO.StreamReader
        Dim strLine As String
        Dim blnDone As Boolean = False
        Dim strFileName As String = "test.txt"
        "Read text from a file and display it in a list box.
        srReader = New IO.StreamReader(strFileName)
        Try
            While Not blnDone
                strLine = srReader.ReadLine()
                If strLine Is Nothing Then
                    blnDone = True
                Else
                    Console.WriteLine(strLine)
                End If
            End While
            srReader.Close()
        Catch ex As Exception
            Console.WriteLine("An error has occurred.")
        Finally
            srReader.Close()
        End Try
   End Sub
End classFinally after multiple catch statements
Module Module1
    Sub Main()
        Dim intItem1 As Integer = 0
        Dim intItem2 As Integer = 128
        Dim intResult As Integer
        Try
            intResult = intItem2 / intItem1
        Catch e As OverflowException
            Console.WriteLine("An overflow exception occurred.")
        Catch e As OutOfMemoryException
            Console.WriteLine("Out of memory.")
        Catch e As IndexOutOfRangeException
            Console.WriteLine("Array index out of range.")
        Finally
            Console.WriteLine("Finally")
        End Try
    End Sub
End ModuleAn overflow exception occurred. Finally
Finally always executes
Public Class Tester
    Public Shared Sub Main
         DoesNotThrowException()
    End Sub
   Public Shared Sub DoesNotThrowException()
      Try
         Console.WriteLine("In DoesNotThrowException")
      Catch
         Console.WriteLine("This Catch never executes")
      Finally
         Console.WriteLine("Finally executed in DoesNotThrowException")
      End Try
      Console.WriteLine("End of DoesNotThrowException")
   End Sub " DoesNotThrowException
End ClassIn DoesNotThrowException Finally executed in DoesNotThrowException End of DoesNotThrowException
Try Catch with Finally clause
Option Strict On
 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 "DoDivide
     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")
         Catch e As System.DivideByZeroException
             Console.WriteLine("DivideByZeroException caught!")
         Catch
             Console.WriteLine("Unknown exception caught!")
         Finally
             Console.WriteLine("Close file here.")
         End Try
     End Sub
 End ClassOpen file here DivideByZeroException caught! Close file here.