06. september 2009 - 17:54Der er
3 kommentarer og 1 løsning
Object reference not set to an instance of an object.
Hejsa...
Tænkte på om nogen har en ide som kunne hjælpe mig her...
Jeg arbejder pt. med noget webkode som af tekniske årsager, som jeg ikke vil bruge tid på at forklare her, gør at jeg ikke kan debugge mig igennem min kode.
Dvs. jeg skal kode noget i VS. Compile og smide en DLL op på en server, som så eksekverer koden på et site.
Nogle gange er det vildt frustrerende blot at få beskeden "Object reference not set to an instance of an object." når man nu har f.eks. 20 objekter i en metode man kører.
Jeg ved godt man kan lægge .pdb filen op og på den måde få nogle linje numre ud osv. Men de passer aldrig med linje numrene i VS alligevel. Så det kan jeg ikke rigtig bruge til så meget...
Så jeg tænkte på om man kan extende den Exception på en eller anden måde, og få navnet på det objekt som var null udskrevet?
Pt. sidder jeg og så kode ala det her for at finde frem til det objekt som får siden til at kaste en exception. Det er total tidsspilde...
if (publikation == null) throw new Exception("Publikation var NULL");
Mød en af Nordens fremmeste eksperter i adfærdsdesign – Morten Münster, der bl.a. har skrevet ” Jytte fra marketing er desværre gået for i dag” – på Computerworld Cloud & AI Festival.
Det her er ikke tidsspilde, det er bare en del af opgaven:
public void Foo(Publication pub) { if (pub == null) throw ArgumentNullException("pub");
... }
I øvrigt har jeg aldrig haft problemer med at pdb filerne ikke giver de korrekte linienumre i stacktrace. Er du sikker på, du får bygget pdb filerne korrekt? (Du kan ikke bare tage dine pdb filer fra din Debug-build og distribuere med dine dll'er fra din Release-build.)
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.