My favorites | Sign in
Project Home Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
for
DeveloperDocs  
Updated Nov 7, 2012 by grmih...@gmail.com

Static Exception report

//Variable
private FejlKlasse fejlklasse = new FejlKlasse();

try
{
      //DoSomething
}
catch (Exception ex)
{
      this.fejlklasse.MeldFejl(this.GetType().Name, System.Reflection.MethodBase.GetCurrentMethod().Name, ex);
      MessageBox.Show(String.Format("Exceptionbeskrivelse:\n{0}", ex), "Der opstod en fejl", MessageBoxButtons.OK, MessageBoxIcon.Error);
}


Denne metode kan bruges på alle user interfaces ved copy&paste.



Input håndtering

Der er 2 måder hvorpå man kan håndtere og tjekke for korrekt input værdi.

  1. Man kan lade GUI laget håndtere inputtet, så alle invalide input bliver fanget i det første lag (udfra 3-lags modellen MVC). Fejlen skal tjekkes i gui, inden kaldet bliver foretaget ned igennem resten af systemet. Svagheden for denne form for håndtering, er at hvis man ikke fanger fejlen, kan system crashe når det når til backend delen. Backend har altså blind tillid til at Frontend foretager dette tjekke, og dermed altid sender korrekte input værdier ned igennem lagene.
  2. Man kan håndtere input checks i backend delen. Inden man foretager en persistering af dataen i backend delen, tjekker man om input værdierne stemmer overens med reglerne for værdier der gemmes i persistens laget. Der skal muligvis laves custom exceptions, fx. til at håndtere invalid input værdi. Dette kunne fx. være en streng der er større end den tilladte max værdi (strengen må max være 8 tegn). Man tjekker så strengen som sendes ned fra frontend delen af systemet, og til backend, og hvis den streng man modtager i backend overstiger max værdien, skal der kaste en exception som beskriver fejlen (dette skal være en extended custom exceptioin, som indeholder: Overordnet fejl titel, beskrivelse for hvorfor fejlen opstod.

Lige nu håndteres input valideringen alene på frontend. Svagheder ved dette:

- Hvis UI udskiftes, skal disse input tjeks laves igen. - Hvis ikke inputet tjekkes i UI, bliver der gemt invalide værdier i datalaget, eller systemet vil crashe.
Styrker ved dette:
+ Backend behøver ikke tænke over om værdierne er korrekt, da der blindt stoles på Frontend. + Input fejl håndteres med det samme, og kan vises til brugeren, inden det ryger videre ned igennem systemets lag.

Det bør genovervejes at lægge ansvaret for input håndtering og Exception casting, ned i Backend delen, således at UI/Frontend dele bliver gjort mere uafhængig, således at man til hver en tid kan udskifte UI delen, uden at miste noget funktionalitet (som ikke er UI-specifik).



Powered by Google Project Hosting