使用Try/Catch进行处理
为了使用Try/Catch方法进行处理需要遵循下面这个简单模式
Try
creat resource
Catch
handle exception
Finally
dispose of resource
End Try
使用这种模式的图像代码如下
Public Shared Sub GenerateThumbnail(ByVal SourceImagePath As String ByVal TargetImagePath As String)
Dim newHeight As Short
Dim newWidth As Short
Dim sourceImage As Image=Nothing
Dim targetImage As Image=Nothing
Try
sourceImage = ImageFromFile(SourceImagePath)
newHeight = CShort(sourceImageHeight * )
newWidth = CShort(sourceImageWidth * )
Dim cb As New ImageGetThumbnailImageAbort(AddressOf ThumbnailCallback)
Try
targetImage= sourceImageGetThumbnailImage(newWidth newHeight cb IntPtrZero)
targetImageSave(TargetImagePath ImagingImageFormatGif)
Catch ex As Exception
Finally
If targetImage IsNot Nothing Then
targetImagedispose()
End If
End Try
Catch ex As Exception
Finally
If sourceImage IsNot Nothing Then
sourceImageDispose()
End If
End Try
End Sub
可以立刻看到这段代码非常难以读懂有两个Try/Catch块具有嵌套结构外部的Try/Catch块用于SourceImage:原始图像使用ImageFromFile从文件中加载该图像然后使用源图像的Height和Width属性计算新的高度和宽度新的高度和宽度是原始图像的%在定义新的尺寸后如果在创建缩略图期间产生错误则创建回调变量(cb)如果发生错误GetThumbnaillmage方法将调用该回调实际上没有处理任何错误因为决定是否生成缩略图并不是至关重要的部分如果具有一个应用程序其中至关重要的部分是了解这些错误则可以在回调过程中记录这些错误
[] [] [] []