Avatar billede badal Nybegynder
07. december 2004 - 14:05 Der er 16 kommentarer og
1 løsning

Unhandlet exception

Jeg får følgende exception:
System.Web.HttpUnhandledException: Exception of type System.Web.HttpUnhandledException was thrown. ---> System.NullReferenceException: Object reference not set to an instance of an object
i den nedenstående funktion og det har givet mit en masse grå på hoved for sådan som jeg kan se har jeg taget højde for de fejl der kan opstå. Er der nogen der kan overskue hvorfor jeg får fejlen i den pågælden funktion ??


public bool test(string strG, string strS)
        {
            SqlConnection conn = null;
            bool recordDeleted = true;

            try
            {
                conn = new SqlConnection((System.Configuration.ConfigurationSettings.AppSettings["temp1"].ToString()));
                conn.Open();

                SqlCommand Command = new SqlCommand("spTestFromDb", conn);
                Command.CommandType = CommandType.StoredProcedure;

                SqlParameter parameterStrG = new SqlParameter("@GTest", SqlDbType.VarChar);
                parameterStrG.Value = strG;
                Command.Parameters.Add(parameterStrG);

                SqlParameter parameterStrA = new SqlParameter("@Acc", SqlDbType.VarChar);
                parameterStrA.Value = "Test";
                Command.Parameters.Add(parameterStrA);

                SqlParameter parameterIntID = new SqlParameter("@DbName", SqlDbType.VarChar);
                parameterIntID.Value = strS;
                Command.Parameters.Add(parameterIntID);

                Command.ExecuteNonQuery();
            }
            catch (Exception Ex)
            {
               
                StrErrorMsg = Ex.ToString();
                recordDeleted = false;
                throw new Exception("Fejl i funktionen test" + Ex.ToString());
            }
            finally
            {
                conn.Close();
            }
            return recordDeleted;
        }


////////////
Her bliver funktionen kaldt

if(!services.test(strG, lblServiceName.Text))
                {
                    lblInfo.Text = lblInfo.Text + " Fejl.  " + " ErrorMsg:  " + services.Message;
                }
Avatar billede badal Nybegynder
07. december 2004 - 14:06 #1
der må gerne gives eksempler på hvordan jeg kan catche exception hvis der feks ikke kan connectes til databasen. Og andre typer exception der kan opstå i denne funktion
Avatar billede nielsbrinch Nybegynder
07. december 2004 - 14:07 #2
Prøv at skrive if (conn != null) conn.Close(); i din finally i stedet for. Det er sikkert den der er blevet null af en eller anden grund.
Avatar billede badal Nybegynder
07. december 2004 - 14:21 #3
Det har jeg gjort men det giver samme resultat
Avatar billede badal Nybegynder
07. december 2004 - 14:48 #4
Er der ingen andre forslag ?
Avatar billede nielsbrinch Nybegynder
07. december 2004 - 14:50 #5
Skriver din exception ikke hvilket linjenummer der er tale om? Ellers må du debugge dig frem til linjenummeret på anden vis.
Avatar billede badal Nybegynder
07. december 2004 - 15:00 #6
koden virker på min lokale maskine men når det kommer op på serveren så kaster den nullpointerexception i ovenstående funktionen. Jeg har ikke det fulde adgang til serveren. Muligvis kan det være fordi  connectstringen mangler i web.config.
Avatar billede badal Nybegynder
07. december 2004 - 15:01 #7
Den skriver ikke linjenummeret
Avatar billede nielsbrinch Nybegynder
07. december 2004 - 15:03 #8
Du kan indsætte denne linje lige efter et sted hvor du måske tror det går galt. Hvis du ikke får den exception, betyder det at det var tidligere det gik galt:
throw new Exception("Jeg er nået hertil");
Avatar billede nielsbrinch Nybegynder
07. december 2004 - 15:03 #9
Hvor ser du egentligt at du modtager den exception? Får du ikke en StackTrace?
Avatar billede badal Nybegynder
07. december 2004 - 15:18 #10
alle exception bliver gemt i databasen. så er der en side hvor jeg kan tjekke fejlene.

At indsætte "throw new exception" det sted hvor jeg tror det går galt er ganske smart. det må jeg prøve
Avatar billede nielsbrinch Nybegynder
07. december 2004 - 15:19 #11
Så anbefaler jeg at du også gemmer exc.StackTrace i databasen, så står der linjenummer, hvis ellers din dll er debug-kompileret.
Avatar billede snepnet Nybegynder
07. december 2004 - 19:16 #12
fik du checket web.config ?
det vil kunne give dig en null-exception, hvis du ikke har en nøgle der hedder temp1. hvis du kan lægge filer på webhotellet, burde du også kunne kigge web.config ud.
mvh
Avatar billede nielsbrinch Nybegynder
08. december 2004 - 09:00 #13
Det er rigtigt snepnet, det virker som det mest oplagte sted - men den er jo indhyllet i en try-catch, men bliver ifølge badal ikke fanget, så vidt jeg kan forstå.
Avatar billede badal Nybegynder
18. december 2004 - 23:01 #14
det er sandt. fejlen lå i web.config filen men jeg syntes bare det er mærkeligt at jeg ikke fik en mere præcis meddelse.

Snepnet... Hvis du kommer med et svar så giver jeg point
Avatar billede snepnet Nybegynder
19. december 2004 - 01:52 #15
et svar skal du få.
nogle gange for man for meget info i fejlmeddelelser, andre gange for lidt :o)
(synes egentlig jeg normalt er ret godt tilfreds med dem man får rapporteret - og jeg synes heller ikke det er særlig logisk at du får den fejl med det kode du har postet.... det virker som om det ikke helt harmonerer, som nielsbrinch også er inde på).
mvh
Avatar billede nielsbrinch Nybegynder
20. december 2004 - 08:41 #16
Ja, jeg er egentligt også ganske kort tilfreds med fejlbeskederne. Bare sammenlign med de gode gamle dage med hulkort, hvor der absolut ingen informationer var til rådighed.

"Fejl"
Avatar billede snepnet Nybegynder
20. december 2004 - 08:42 #17
:o)
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