vb.net编写自定义异常

要创建一个自定义的异常,你可以自定义一个异常类。为了确保它是一个 .Net 的异常,你的异常类应该从一个 .Net 异常类中继承而来。其中一个比较好的继承对象是
ApplicationException 类。就像下面例子中的UsernameNotFoundException类:

Public Class UsernameNotFoundException : Inherits ApplicationException
   Public Sub New()
      MyBase.New()
   End Sub
   Public Sub New(ByVal message As String)
      MyBase.New(message)
   End Sub
   Public Sub New(ByVal message As String, ByVal innerEx As Exception)
      MyBase.New(message, innerEx)
   End Sub
End Class

使用继承的时候,新的类会自动从父类继承了所有的属性。因此,UsernameNotFoundException 类会拥有 ApplicationException 类的所有属性,例如消息和调用。
新类不会继承父类的参数表,因此你需要为新的类定义参数表。ApplicationException 支持以下三种参数结构。

•One with no parameters  没有参数
•One with just the message parameter 只有一个消息参数
•One with both a message and an inner exception 一个消息和一个内部的异常

 

最后一个参数结构是用于代码截获一个异常后再重新丢出一个异常,但又想保持原有的异常信息。

同样地你可以为你的新异常自定义属性和事件,例如,你可以为你的异常加入一个 username 属性用来记录所有产生异常的用户的信息。
丢出自定义异常的代码如下:

Public Function ValidateLogin(ByVal sUserName As String, _
      ByVal sPassword As String) As Boolean
   If sUserName.length=0 OrElse sPassword.Length=0 Then
      Throw New ArgumentOutOfRangeException("Username and password are required.")
   End If
   '' Code to locate the user record here
   If iUserRecordID = 0 Then
      Throw New UsernameNotFoundException("Invalid username")
   End If
   '' Code to retrieve the password from the user record here
   If sPassword <> sUserRecordPassword Then
      Throw New PasswordInvalidException("Invalid password")
   End If
   Return True
End Function

Private Sub cmdLogin_Click(ByVal sender As Object, _
      ByVal e As System.EventArgs) Handles cmdLogin.Click
   Dim oUser As User()
   Dim bValid as Boolean
 Try
   oUser = New User()
   bValid = oUser.ValidateLogin(txtUserName.Text, txtPassword.Text)
   If bValid then
      DialogResult = DialogResult.OK
   End If
 Catch ex As UsernameNotFoundException
   MessageBox.Show(ex.Message)
   txtUserName.Focus()
 Catch ex As PasswordInvalidException
   MessageBox.Show(ex.Message)
   txtPassword.Focus()
 Catch ex As Exception
   MessageBox.Show(ex.Message)
 Finally
   oUser.Dispose()
   oUser = Nothing
 End Try
End Sub

异常的参数是很重要的,一些特别的参数通常要在一般的异常参数之前定义。一般的异常参数通常都放到最后以便能截住所有的不可预测异常。

 

 

自己写的:

 Public Class myexception : Inherits ApplicationException
    Public Sub New(ByVal message As String)
        MyBase.New(message)
    End Sub
End Class

 

 

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click


        Try
            Dim Path As String = "c:/abc.txt"

            If Directory.Exists(Path) = False Then
                Throw New myexception("error")
            End If
            Dim fs As FileStream = New FileStream("Path", FileMode.Open, FileAccess.ReadWrite, FileShare.Read)
            Dim a As TextReader
            Dim b(1024) As Byte
            fs.Read(b, 0, b.Length)
            Dim temp As UTF8Encoding = New UTF8Encoding(True)

            MsgBox(String.Format(temp.GetString(b)))


        Catch ex As myexception
            MessageBox.Show(ex.Message)
        Finally
            MsgBox("heh")

        End Try

    End Sub
End Class

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 你可以通过在VB.NET中使用Graphics对象和Paint事件来自定义绘制图形。以下是实现自定义图形的步骤: 1. 在窗口上添加一个Panel控件,作为绘制图形的容器。 2. 在Panel控件的Paint事件中编写代码,以绘制所需的图形。例如,可以使用Graphics对象的DrawLine、DrawRectangle和DrawEllipse方法绘制直线、矩形和椭圆形等。 3. 可以使用Pen和Brush对象来设置绘制图形的颜色和填充效果。 下面是一个简单的示例代码,用于在Panel控件中绘制一个圆形: ``` Private Sub Panel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint Dim g As Graphics = e.Graphics Dim pen As New Pen(Color.Red, 2) Dim brush As New SolidBrush(Color.Yellow) g.DrawEllipse(pen, 10, 10, 100, 100) g.FillEllipse(brush, 10, 10, 100, 100) End Sub ``` 在这个示例中,我们在Panel1的Paint事件中绘制了一个圆形。首先,我们创建了一个Graphics对象,并使用Pen对象绘制了一个红色的圆形边框。接下来,我们使用Brush对象填充了这个圆形,使其呈现出黄色。 ### 回答2: 在VB.Net中,可以通过使用绘图工具和控制窗口的事件来实现自定义图形在窗口上的绘制。 第一步是创建一个窗体应用程序,并在窗体上添加一个绘图控件(如PictureBox)。可以通过在设计视图中拖放一个PictureBox控件来完成此操作。 接下来,需要处理窗体的绘制事件(如Paint事件)以进行绘图。可以通过双击窗体以打开代码视图,并将处理程序添加到绘制事件中。 在绘图事件处理程序中,可以使用Graphics对象来进行绘图操作。可以使用Graphics对象的各种方法和属性来绘制线条、图形、文本等。例如,可以使用Graphics对象的DrawLine方法来绘制线条,使用DrawRectangle方法来绘制矩形,使用DrawEllipse方法来绘制椭圆等等。 在绘制事件处理程序中,可以使用窗体的绘图控件的CreateGraphics方法来创建一个Graphics对象。此方法返回一个与该控件相关联的Graphics对象,可以使用该对象进行绘图操作。 通过在绘制事件处理程序中编写所需的绘图代码,可以在窗体上自定义绘制图形。可以根据需要添加任意多个绘图代码。 请注意,绘图操作将在每次窗体被重绘时执行(例如在窗体被最小化和恢复、窗体改变大小等情况下)。因此,在绘图代码中应该考虑窗体重绘的可能性,以使绘制的图形能够正确显示。 通过以上步骤,就可以在VB.Net中自定义绘制图形,并在窗体上显示出来。 ### 回答3: 在使用VB.NET进行图形自定义时,可以使用绘图技术来创建和修改图形,下面是一个简单的示例: 首先,在VB.NET中创建一个Windows窗体应用程序。在窗体的OnPaint事件处理程序中添加以下代码: ``` Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint Dim g As Graphics = e.Graphics Dim pen As New Pen(Color.Red, 3) '创建红色画笔 '绘制一个圆形 g.DrawEllipse(pen, 50, 50, 100, 100) '绘制一个矩形 g.DrawRectangle(pen, 200, 50, 100, 100) '绘制一个文本 g.DrawString("Hello, VB.NET!", Me.Font, Brushes.Black, 100, 200) End Sub ``` 以上代码使用Graphics对象的DrawEllipse和DrawRectangle方法绘制一个圆形和一个矩形,并使用DrawString方法绘制一段文本。这些方法使用一个画笔对象来确定图形的颜色、大小等属性。 在窗体上,你可以通过Form1_Load事件处理程序或者其他适当的事件处理程序来调用Invalidate方法,以便在窗体上重新绘制图形: ``` Me.Invalidate() ``` 以上就是如何使用VB.NET进行图形的自定义。你可以根据自己的需要来修改和扩展这些代码,创建更复杂和有趣的图形。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值