Results 1 to 5 of 5

Thread: Error handling in (ASP).NET

  1. #1
    TCustomBuild Rob Bos's Avatar
    Join Date
    Jan 2003
    Location
    Eindhoven
    Posts
    4,213

    Error handling in (ASP).NET

    Hallo,

    ik ben inmiddels erachter dat ik middels deze code een error oproepen
    Code:
    Err.Raise(vbObjectError + 200, Nothing,"Failed to load credentials from database")
    Maar nu wil ik de error opvangen op het niveau van de aanroepende code:
    Code:
    Try
     MailSender.SendMail()
    Catch exc As Exception
     ' en nu ?
    EndTry
    Alleen nu wil ik in de Catch het nummer van de error weer terug lezen... Dit is alleen geen property van Exception .Mis ik nu iets of zit ik nog met oude vb methodes in de war ?
    Last edited by Rob Bos; 04-Oct-06 at 10:26.

  2. #2
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    Euh? Wat is dat gedoe met die nummers?
    Gewoon:
    Code:
    Private Sub SendMail()
        Throw New Exception("This exception courtesy of Rob Bos")
    End Sub
    
    Private Sub test()
        Try
            SendMail()
        Catch ex As Exception
            Label1.Text = ex.Message
            ' of:
            Label1.Text = ex.ToString
        End Try
    End Sub
    Je kan een meer toepasselijke/gespecializeeerde exception genereren (eventueel een instantie van je eigen Exception klasse).
    All methodologies are based on fear. -- Kent Beck.

  3. #3
    TCustomBuild Rob Bos's Avatar
    Join Date
    Jan 2003
    Location
    Eindhoven
    Posts
    4,213
    Ik wil graag anders reageren op mijn eigen exception dan op andere exceptions. Dus iets als:
    Code:
    Catch ex as exception
     if ex.Number = vbObjectError + 200 then
       'handle exception failed to credentials from db
     else
       'handle other exceptions in a more general way
     end if
    Ik kan natuurlijk ook SendMail() een statuscode teruggeven, maar via een specifieke exception lijkt me dit ook te kunnen.

  4. #4
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    Met exception filtering bijvoorbeeld:

    Code:
    Public Class RobBosException
        Inherits Exception
    
        Public Sub New(ByVal message As String)
            MyBase.New(message)
        End Sub
    End Class
    
    Private Sub SendMail()
        Static r As New Random
        Select Case r.Next(3)
            Case 0
                Throw New RobBosException("Insert disk in A:")
            Case 1
                Dim ex As New InvalidOperationException( _
                  "Hola, dit mag niet")
                ex.Data("Nummer") = 42
                ex.Data("From") = "Rob Bos"
                Throw ex
            Case Else
                Throw New Exception( _
                  "Error 2000: This is not an error")
        End Select
    End Sub
    
    Private Sub test()
        Try
            SendMail()
        Catch ex As RobBosException
            Label1.Text = ex.GetType.Name + "<br>" + ex.Message
        Catch ex As InvalidOperationException
            Label1.Text = String.Format( _
              "Error {0} from {1} <br>Message: {2}", _
              ex.Data("Nummer"), ex.Data("From"), ex.Message)
        Catch ex As Exception
            Label1.Text = ex.Message
        End Try
    End Sub
    All methodologies are based on fear. -- Kent Beck.

  5. #5
    TCustomBuild Rob Bos's Avatar
    Join Date
    Jan 2003
    Location
    Eindhoven
    Posts
    4,213
    Bedankt Dirk, daar kan ik weer verder mee.Blijkbaar heb ik me vergist in het ErrObject.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •