首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从system.dividebyzeroexception继承的异常类

从system.dividebyzeroexception继承的异常类
EN

Stack Overflow用户
提问于 2012-09-21 17:12:59
回答 1查看 694关注 0票数 1

我已经创建了一个继承类,名为ZeroException,它继承自System.DivideByZero类,但当发生dividebyzero异常时,它不会捕获事件。

代码语言:javascript
复制
Class ZeroException
Inherits System.DivideByZero
Public Overrides ReadOnly Property Message() as String
Get 
Return "Divide By Zero"
End Get
End Property
End Class

主代码:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2012-09-21 17:45:01

您不会捕获自定义异常,而是抛出一个..因此,在这种情况下,您的代码应该如下所示:

代码语言:javascript
复制
    Try
        k = x \ y 'Integer Division
    Catch ex As DivideByZeroException
        Throw New ZeroException
    End Try

下面是一个演示这一点的测试用例。

代码语言:javascript
复制
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 Class
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12527584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档