Toon posts:

[Delphi.NET icm ASP] class methods en variabelen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Na een 3-Tier ASP.Net Web-applicatie te hebben gebouwd was het vandaag tijd om eens een simpele exceptionhandling klasse te schrijven die exceptions van de verschillende lagen kan loggen en uiteindelijk kan teruggeven naar de presentatie-laag.

Dit doet het op dit moment door een arraylist van "ExceptionStruct"'s bij te houden die mbv de class (static) function Catch (ex : exception ) worden gevult. De arraylist is ook een strict private class var (dus ook static). Daarnaast kan de hoeveelheid items in de arraylist worden teruggegeven mbv van de class function Count, en worden geleegd door de eveneens class function Clear.

In het pre-render event van de presentatie-laag (specifieker ;in de header) kan er worden gekeken of die Count groter dan 0 is, en als dat zo is kan er een specifieke error pagina worden gecreeerd en de fout kan naar de database worden geschreven.
Afbeeldingslocatie: http://members.home.nl/mloon/pogingtotklassediagram.jpg

So far So good. Enkel toen merkte iemand op of dat eigenlijk wel werkt met als er meer dan een user tegelijkertijd met de web-applicatie werkt. Tja en toen kwam ik achter mijn denk fout: Omdat de klasse eigenlijk alleen maar static functions en variabelen heeft komt elk browserwindow er mee inaanraking. Dus als user 1 een fout maakt, komt de Count bij alle andere users ook op > 0 te staan en krijgen ze een mooi opgemaakte error pagina :z .

Is er een manier om er voor te zorgen dat iig de Catch methode static zijn exceptions te laten ontvangen en in de arraylist te schuiven, maar dat er voor de rest wel een instantie van de overige methoden en variabelen (dus voor hier de ArrayList, Count en Clear). Zodat eigenlijk elke user zijn eigen instantie krijgt.

Ik hoop dat mijn verhaal een beetje duidelijk was, anders hoor ik het waarschijnlijk wel :> .

PS. Ik weet wel dat ik ook de ArrayList van ExceptionStruct's ook wel op een enkel UserID kan sorteren, maar ik wil eens voor een nette oplossing gaan.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 18:52

gorgi_19

Kruimeltjes zijn weer op :9

Wil je niet gewoon het OnError event in de Global.Asax / HttpModule afvangen? :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
gorgi_19 schreef op maandag 14 maart 2005 @ 22:00:
Wil je niet gewoon het OnError event in de Global.Asax / HttpModule afvangen? :)
Maar is deze "OnError" er niet gewoon "als er een exception waar dan ook" op treedt?
(Dus wat ik bedoel: het is al gebeurd, en het lijkt meer op een unhandled exception dan).
Want ik wil namelijk daadwerkelijk in een try en except blok die eerder genoemde "Catch" functie aanroepen als er een exception optreed.

Daarnaast zou ik ook graag willen weten hoe mijn eerder gestelde vraag, toch kan. Gewoon zodat als ik er nog een keer tegen aanloop ik toch een oplossing weet B).