Avatar billede mulemule Nybegynder
21. april 2005 - 18:50 Der er 23 kommentarer

Windows Forms giver dårlige fejlmeddelser.

Hvis der kommer en Exception i min Windows form (enten en alimindelig en eller min egen jeg selv har kastet).

Så kommer der en fejlmeddelse, hvor der bare står navnet på exception. Ikke noget linjenummer, eller trace for hvilke metoder der har været kaldt.

Det er ireterende, man må da kunne sætte det op til at få nogen bedre fejlmeddelelser ?

Mvh
Avatar billede mulemule Nybegynder
21. april 2005 - 18:54 #1
p.s. Jeg bruger Visual Studio 2003
Avatar billede arne_v Ekspert
21. april 2005 - 19:11 #2
Prøv noget a la:

            try
            {
                        // gør noget
            }
            catch(Exception ex)
            {
                MessageBox.Show(ex.Message + " " + ex.StackTrace);
            }
Avatar billede mulemule Nybegynder
21. april 2005 - 19:23 #3
Jooooooooooo. Men hvorfor fanden skriver den ikke bare selv den der stack trace, når der opstår en uncauht exception ?
Avatar billede mulemule Nybegynder
21. april 2005 - 19:23 #4
Mvh sure
Avatar billede arne_v Ekspert
21. april 2005 - 19:44 #5
Ved jeg ikke - jeg har ikke skrevet .NET !

Jeg gætter på at en hos Microsoft har tænkt at det ville forvirre
slutbrugerne at se en stacktrace og derfor så catche de exception og
viste den der intetsigende box.
Avatar billede mulemule Nybegynder
21. april 2005 - 20:00 #6
Ok, tak. Så havde det jo været endnu "lettere" hvis der slet ikke kom nogen besked kan man sige.
Avatar billede burningice Nybegynder
21. april 2005 - 21:13 #7
tja... men den betyder dog at et program ikke mere bare kan lave en ulovlig handling og lukke ned uden at give lyd fra sig. F.eks. vil man nu, hvis man sidder og har skrevet 234432 siders rapport uden at gemme, og vælger et menupunkt der kaster en exception. Før ville programmet bare lukke ned og alt være tabt. Nu får brugeren en besked, måske ret intetsigende, men ikke desto mindre kan man trykke continue og arbejde videre uden at vælge det menupunkt :)

ok, måske ikke det mest realistiske scenarie, men ikke desto mindre er det nok det der beskriver dens funktion best muligt.
Avatar billede arne_v Ekspert
21. april 2005 - 21:21 #8
det forklarer hvorfor de catcher men ikke hvorfor de har valgt den intetsigende besked
Avatar billede nielle Nybegynder
21. april 2005 - 22:07 #9
Det er vel ikke sådan at du kompiler til Release i stedet for Debug?
Avatar billede nielle Nybegynder
21. april 2005 - 22:09 #10
Man plejer at få det ekstra data når man køre Debug, mens Releas er noget mere spartansk.
Avatar billede mulemule Nybegynder
22. april 2005 - 12:57 #11
Nielle -> Jamen det ved jeg godt, men jeg kører Debug. Har tidligere oplevet at der er problemer med det - den skriver ikke linjenummer selvom det er debug. Har du ideer til andre steder man kan sætte noget op.

**

Nu er jeg gået igang med at bygge mit helt personlige Error Log system, hvor alle applikationer på pc´en også kan writeline til den samme sorte consol - Jeg tror mit liv bliver meget lettere når dette system er færdigt, senere idag.

Mvh
Avatar billede burningice Nybegynder
22. april 2005 - 15:39 #12
du har ikke kigget på log4net eller Microsoft Exception Handling Block ? træls at skulle opfinde den dybe tallerken om igen.
Avatar billede nielle Nybegynder
22. april 2005 - 17:12 #13
Når jeg provokere en exception får jeg en fejldialog op med teksten "An unhandled exception has occurred in ...". I denne dialog er der en knap "Details" og hvis jeg trykker på denne, får jeg alle de trace-oplysninger jeg kunne ønske mig. Hvis det er et Debug-build kommer der linjenumre med, og hvis det er et Release-build så er de ikke med. Så sådan bør en standard-installation altså opføre sig.

Dertil kommer den slags projekter hvor man compiler til Debug, men samtidigt linker til DLL'er som er compileret til Release. Her får man selvfølgelig ikke de fulde oplysninger hvis exceptionen bliver smidt internt i DLL'en.
Avatar billede mulemule Nybegynder
23. april 2005 - 18:05 #14
I min fejlbox står der kun (f.eks.)

An unhandled exception of type 'System.ObjectDisposedException' occurred in system.windows.forms.dll

Additional information: Cannot access a disposed object names "SomeObject".

Og så er der følgende knapper:

"break" "Continiue" "Ignore" "Help".

Ignore er greyed og ingen details.
Avatar billede mulemule Nybegynder
23. april 2005 - 18:49 #15
Det er det samme om jeg kører release eller debug, hvis jeg laver min egen toString af exception kan man godt se tracet - Jeg erindrer periodisk at have haft ligende problemer tidligere.
Avatar billede arne_v Ekspert
30. april 2005 - 16:47 #16
OK ?
Avatar billede mulemule Nybegynder
03. maj 2005 - 03:31 #17
Opfølning.

Der er en form for fejl i min Visual Studio opsætning.

Jeg får det forkerte vindue uden details. Hvis jeg kører mine Applicationer helt uafhængigt af Visual Studio, kommer der rigtige vindue med Details. Det er somom Visual Studio ikke kan finde source koden.

Jeg er tilbøjelig til at geninstallere .

Jeg vender tilbage når jeg finder ud af noget.

arne_v -> Hvis du heller ikke får details lider din Visual Studio måske af samme sygdom. Du kan jo prøve at lave en lille windows application med en knap der giver en divsion by zero, så skal der altså komme linjenumre og det hele.
(det gør der kun hos mig hvis jeg kører App uden om Visual Studio)

Flere gode ideer er stadig mere end velkomne.

Mvh
Avatar billede arne_v Ekspert
03. maj 2005 - 07:10 #18
Jeg har også details knappen.

Og bruger iøvrigt slet ikke Visual Studio.
Avatar billede mulemule Nybegynder
04. maj 2005 - 02:03 #19
OK.

Er der andre der kan hjælpe ??
Avatar billede nielle Nybegynder
09. maj 2005 - 10:06 #20
Nu tager det jo ikke så lang tid at reinstallere Visual Studio .NET - så det synes jeg da at du skulle prøve.
Avatar billede mulemule Nybegynder
10. maj 2005 - 00:12 #21
Jeg er ikke helt med på om du er ironisk der..

Men nu lever jeg lige med det noget tid, men jeg har sku da lyst til at reinstallere hele systemet inkl Windows. Det er da herre ireterende ikke at kunne se fejlmeddelser. Men jeg har jo fundet ud af at de kommer hvis jeg bare kører applicationen uden for VS.

Iøvrigt hjælper det lidt med geninstalatioen af VS hvis man en gang for alle har puttet alle CD´en ind på en install-harddisk i samme mappe.

Mvh
Avatar billede nielle Nybegynder
10. maj 2005 - 17:43 #22
Ikke spor ironisk. Somme tider bruger man simpelthen bare alt for lang tid på at forsøge at løse et problem, som forsvinder af sig selv med en reinstallation. Og så var det faktisk dig selv som bragte muligheden for reinstallation på banen.

Iøvrigt kan det kun anbefales med en ren installation at Windows en gang imellem.
Avatar billede nielle Nybegynder
25. november 2007 - 18:05 #23
Lukketid?
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
Kurser inden for grundlæggende programmering

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