我已经创建了一个继承类,名为ZeroException,它继承自System.DivideByZero类,但当发生dividebyzero异常时,它不会捕获事件。
Class ZeroException
Inherits System.DivideByZero
Public Overrides ReadOnly Property Message() as String
Get
Return "Divide By Zero"
End Get
End Property
End Class主代码:
Sub Calc()
dim x as integer=5
dim y as integer=0
dim k as single
Try
k=x\y 'Integer Division
Catch ex as ZeroException
Console.WriteLine(ex.Message) 'But I get another message. Not Divide By Zero
End Try
End Sub发布于 2012-09-21 17:45:01
您不会捕获自定义异常,而是抛出一个..因此,在这种情况下,您的代码应该如下所示:
Try
k = x \ y 'Integer Division
Catch ex As DivideByZeroException
Throw New ZeroException
End Try下面是一个演示这一点的测试用例。
Imports System.Text
Imports Microsoft.VisualStudio.TestTools.UnitTesting
Class ZeroException
Inherits DivideByZeroException
Public Overrides ReadOnly Property Message() As String
Get
Return "Divide By Zero"
End Get
End Property
End Class
<TestClass()> Public Class UnitTest1
<TestMethod()> Public Sub TestMethod1()
Try
MethodThrowsCustomException()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Sub
Public Sub MethodThrowsCustomException()
Dim x As Integer = 5
Dim y As Integer = 0
Dim k As Single
Try
k = x \ y 'Integer Division
Catch ex As DivideByZeroException
Throw New ZeroException
End Try
End Sub
End Classhttps://stackoverflow.com/questions/12527584
复制相似问题