Avatar billede ha9953 Nybegynder
08. maj 2006 - 00:52 Der er 2 kommentarer og
1 løsning

function med try:catch:finally:end try

Jeg får denne advarsel:

Function 'foto_select_byte' doesn't return a value on all code paths. A null reference exception could occur at run time when the result is used.

i denne function

Public Function foto_select_byte(ByVal fotoid As Integer) As Byte()
        Dim navn As String = "foto_select_thumb"
        Dim conn As SqlConnection = New SqlConnection(classdiv.conn)
        Dim d As Byte()
        Try
            conn.Open()
            Dim cmd As SqlCommand = New SqlCommand("cms_" & navn, conn)
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.Add(New SqlParameter("@fotoid", fotoid))
            d = CType(cmd.ExecuteScalar(), Byte())
            Return d
        Catch ex As SqlException
            classdiv.ExceptionSql(ex)
        Finally
            conn.Close()

        End Try
    End Function

hvordan kan jeg slippe af med denne advarsel. hvad er det jeg ikke gør rigtigt? selve funktionen kører fint, det irreterer mig bare med en advarsel
Avatar billede arne_v Ekspert
08. maj 2006 - 01:10 #1
Catch ex As SqlException
            classdiv.ExceptionSql(ex)
            Return Nothing

eller

        Catch ex As SqlException
            classdiv.ExceptionSql(ex)
            Dim dummy(0) As Byte
            Return dummy

måske
Avatar billede Slettet bruger
08. maj 2006 - 07:03 #2
Flyt din return the efter end try som vist nedenfor


Public Function foto_select_byte(ByVal fotoid As Integer) As Byte()
        Dim navn As String = "foto_select_thumb"
        Dim conn As SqlConnection = New SqlConnection(classdiv.conn)
        Dim d As Byte()
        Try
            conn.Open()
            Dim cmd As SqlCommand = New SqlCommand("cms_" & navn, conn)
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.Add(New SqlParameter("@fotoid", fotoid))
            d = CType(cmd.ExecuteScalar(), Byte())
        Catch ex As SqlException
            classdiv.ExceptionSql(ex)
        Finally
            conn.Close()
        End Try
        Return d
    End Function
Avatar billede ha9953 Nybegynder
08. maj 2006 - 19:15 #3
Jeg kom lidt nærmere løsningen med hjælp fra kryptos

Løsningen ser ud som følgende. Jeg blev nød til at smide en = nothing på variablen d for at slippe for alle advarsler:

Public Function foto_select_byte(ByVal fotoid As Integer) As Byte()
        Dim navn As String = "foto_select_thumb"
        Dim conn As SqlConnection = New SqlConnection(classdiv.conn)
        Dim d As Byte() = Nothing
        Try
            conn.Open()
            Dim cmd As SqlCommand = New SqlCommand("cms_" & navn, conn)
            cmd.CommandType = CommandType.StoredProcedure
            cmd.Parameters.Add(New SqlParameter("@fotoid", fotoid))
            d = CType(cmd.ExecuteScalar(), Byte())
            Return d
        Catch ex As SqlException
            classdiv.ExceptionSql(ex)
        Finally
            conn.Close()
        End Try
        Return d
    End Function
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