Avatar billede thomasabcd Nybegynder
19. oktober 2005 - 12:12 Der er 8 kommentarer og
1 løsning

Håndtere exceptions i en System.Timers.Timer (.Net 2.0)

Hej,

jeg har en System.Timers.Timer i min ASP.Net-applikation, som hvert 15. sekund skal udføre en handling. Hvis der er noget, der går galt i udførslen, skal brugeren gøres opmærksom på det. Derfor har jeg indsat en try-catch i min timer_elapsed-metode, men hvordan kaster jeg exceptions op, så de kan fanges på højere niveau ? Jeg har prøvet at kaste den videre med  "throw myexception", men den bliver ikke fanget nogen steder. Hvad skal jeg gøre ?
PS:Jeg logger fejl med log4net til en fil, så en administrator eller anden senere kan se, hvor der opstod en fejl.
Avatar billede arne_v Ekspert
19. oktober 2005 - 15:04 #1
exceptions er jo tråd specifikke og du kører i en seperat tråd så ...

jeg tror at du skal lade din try block gemme i noget globalt (Application eller
en egen singleton) og så lade en side hente data derfra
Avatar billede thomasabcd Nybegynder
19. oktober 2005 - 16:47 #2
Er det ikke muligt at overføre den exception, der skal kastes, tilbage til hovedtråden og så kaste den der fra ?
Avatar billede arne_v Ekspert
19. oktober 2005 - 18:52 #3
det har jeg svært ved at forestille mig
Avatar billede thomasabcd Nybegynder
20. oktober 2005 - 13:23 #4
det kan ikke gøres ved at fyre en event, som hovedtråden lytter på ? I dens eventhandler kunne man så fyre exception videre ? 
Jeg har en statisk klasse, som instantierer en timer. Og det er i timerens "elapsed"-metode, der skal fanges exceptions. Er det rigtigt forstået, at min statiske klasse kører i en tråd og opretter en timer, som så kører i sin egen tråd ?
Avatar billede runesoft Nybegynder
25. oktober 2005 - 10:29 #5
problemet i en web applikation er jo at der ikke altid behøver at være en bruger der er ved at hente en side...  evt. kunne der jo også være flere samtidige brugere...  Hvem skal have beskeden, eller fejlen?
Avatar billede thomasabcd Nybegynder
25. oktober 2005 - 10:40 #6
Hej. Der er kun én bruger, der kører denne applikation. Det er ikke optimalt at køre den som en web-applikation, men det bliver jeg nødt til at gøre foreløbigt. Adgangen bliver derfor begrænset til én bruger. Denne bruger er administrator / super-bruger. Timeren står og checker om nogle tidsfrister er overskredet. Hvis timeren kaster en exception i dette check , skal brugeren have det at vide.
Avatar billede runesoft Nybegynder
26. oktober 2005 - 09:52 #7
ok, så lad mig omformulere...  problemet med at lave dette som en web applikation er: kommunikation i en web applikation er styret af browseren, så du kan ikke notificere brugeren på et vilkårligt tidspunkt...  du bliver nødt til at gemme informationen og vente på næste gang browseren requester din side.
Avatar billede thomasabcd Nybegynder
12. juni 2006 - 10:30 #8
Hej Arne og Runesoft, kan I ikke smide et svar, så får I begge point for denne gamle sag :-)
Avatar billede arne_v Ekspert
12. juni 2006 - 13:40 #9
svar
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