Avatar billede tjgrindsted Nybegynder
06. april 2007 - 10:20 Der er 17 kommentarer og
1 løsning

Få Catch ex As Exception til at lave en fejl

Hej hvordan kan jeg lave en fejl så jeg kan se at dette virker

Catch ex As Exception
            Console.WriteLine(ex.Message)

Min kode er:
    Public Sub OpenDB()
        Dim ObjConn As OleDbConnection
        Dim ObjCmd As OleDbCommand
        Dim ObjReader As OleDbDataReader

        Try
            Dim ConnectionString As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
            ObjConn = New OleDbConnection(ConnectionString)
            ObjCmd = New OleDbCommand("select * from somestuff where status='MAYBE' order by date desc", ObjConn)
            ObjConn.Open()
            ObjReader = ObjCmd.ExecuteReader(CommandBehavior.CloseConnection)
            If ObjReader.HasRows() Then
                Repeater1.dataSource = objReader
                Repeater1.databind()
            Else
                Response.Write("intet i databasen DB")
            End If
        Catch ex As Exception
            Console.WriteLine(ex.Message)
        Finally
            ObjReader.Dispose()
            ObjConn.Dispose()
        End Try
    End Sub
Avatar billede dr_chaos Nybegynder
06. april 2007 - 10:23 #1
noget i denne stil vil give en divide by zero exception :
dim i as Int =0
dim j as Int = 1

Response.Write(j/i)
Avatar billede driis Nybegynder
06. april 2007 - 10:58 #2
Eller du kan lukke databaseserveren ned, eller du kan sætte connectionstring til noget ugyldigt. Det vil også give en fejl.
Avatar billede arne_v Ekspert
06. april 2007 - 15:09 #3
eller en lille syntax fejl i SQL
Avatar billede arne_v Ekspert
06. april 2007 - 15:14 #4
Skal der ioevrigt ikke testes for != null i finally inden Dispose kaldes ?
Avatar billede arne_v Ekspert
06. april 2007 - 15:14 #5
et par side bemaerkninger:
1) overvej at catche noget mere specifikt end Exception
2) overvej noget andet end Console.WriteLine til at formidle den exception
Avatar billede tjgrindsted Nybegynder
06. april 2007 - 19:37 #6
Tak for response på sådan en Påskefrokost dag ;)

@Arne V.
Jo overvejelser er der mange af men ikke altid de rigtige ;)

Hvad skal jeg tester for != null !? er det om databasen er tom !?
Hvad er mere specifikt end Exception !?
Jo Console.WriteLine havde jeg tænkt på at lave til ExMessage.Text og så lave en asp:Label der hedder ExMessage men ved ikke om det er det du tænkte på.

Jeg er jo ny i dette så er altid ikke med på hvor du vil hen med de guldkorn du kommer med så hvis du vil lave et eks. så lytter jeg gerne.
Avatar billede arne_v Ekspert
06. april 2007 - 19:54 #7
OleDbException og de oevrige exceptions som de kaldte metoder kan smide og som det
giver mening at catche
Avatar billede arne_v Ekspert
06. april 2007 - 19:59 #8
hvis du faar en exception i OleDbConnection constructor saa er ObjConn null
og saa faar du en NullReferenceException naar din finally blok udfoeres
Avatar billede arne_v Ekspert
06. april 2007 - 20:04 #9
jeg ville ikke vise exception tekst til slut brugere

giv dem en sludder for en sladder og log den rigtige exception tekst til en
log fil eller andet
Avatar billede tjgrindsted Nybegynder
06. april 2007 - 22:07 #10
Har du nogle eks. på dette så jeg kan komme videre !?
Avatar billede tjgrindsted Nybegynder
06. april 2007 - 22:08 #11
Avatar billede tjgrindsted Nybegynder
06. april 2007 - 22:43 #12
Ang. !=null er det noget ala dette du mener i Finally



        If Not ObjReader Is Nothing Then
              ObjReader.Dispose()
        End If
        If Not ObjConn Is Nothing Then
              ObjConn.Dispose()
        End If
Avatar billede arne_v Ekspert
06. april 2007 - 22:49 #13
ja

sorry for den C# syntax !
Avatar billede arne_v Ekspert
06. april 2007 - 22:54 #14
det er exception klassen der vil blive smidt ved nogle typer af fejl - check docs
for at finde de relevante exceptions og beslut dig for hvordan de skal haandteres
Avatar billede tjgrindsted Nybegynder
07. april 2007 - 09:20 #15
@Arne V

Hvor kan jeg finde de docs ang. Exception klasser. !!?
Avatar billede arne_v Ekspert
07. april 2007 - 23:35 #16
http://msdn2.microsoft.com/en-gb/library/x0ckc7ak.aspx

har ikke nogle exceptions for OleDBConnection constructor

http://msdn2.microsoft.com/en-gb/library/system.data.oledb.oledbconnection.open.aspx

siger at Open kaldet kan smide

Exception type    Condition

InvalidOperationException
   
The connection is already open.

OleDbException
   
A connection-level error occurred while opening the connection.

etc.
Avatar billede tjgrindsted Nybegynder
28. april 2007 - 09:50 #17
arne vil du lægge et svar.
Avatar billede arne_v Ekspert
28. april 2007 - 17:09 #18
ok
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester