Göm menyn

För betyg 4 - Felhantering

Alla laborationer och projekt görs i par, och alla studenter måste registrera sig i Webreg

Syfte

Laborationen ämnar hjälpa studenten att uppfylla följande mål.

Lärandemål - Gäller TDP024

Från kursplanen:
  • redogöra för ramverk/mönster för att utveckla affärssystem (enterprise applications)
  • redogöra för principerna för service-oriented architecture (SOA)
  • reflektera över egen programutveckling inom området och diskutera alternativa lösningar

Programmål - Gäller IP

Från utbildningsplan:
  • ämne: principiell kunskap som ingår som en del i den vetenskapliga teoribyggnaden runt programmering och datorer, främst inom den datavetenskapen
  • teknik: kunnande om den teknik som finns för programmering och datorer, med fokus på programmeringsspråk och plattformar.

Examensmål - Gäller Kandidatexamen

Från examensordning:
  • visa förmåga att söka, samla, värdera och kritiskt tolka relevant information i en problemställning samt att kritiskt diskutera företeelser, frågeställningar och situationer
  • visa förmåga att självständigt identifiera, formulera och lösa problem samt att genomföra uppgifter inom givna tidsramar
  • visa förmåga att muntligt och skriftligt redogöra för och diskutera information, problem och lösningar i dialog med olika grupper

Felhantering

Introduktion

Den grundläggande SOA tjänst som ni utvecklat i projekt saknar helt och hållet felhantering. Det är väldigt mycket som kan gå fel under loppet av ett anrop till er tjänst. Man kan tänka sig att det är felaktiga parametrar som skickas till tjänsten, det kan vara nätverksfel mellan er server och databasen, etc. I dagsläget så svarar ni alltid med "OK" eller "FAILED", oavsett vad som hänt.

I denna extra del skall ni åtgärda detta. När uppgiften är löst skall ni inte längre returnera "null" eller "0" när något går fel i data- och/eller logiklagret, utan istället kasta ett exception. Från webblagret skickas sedan användbar information tillbaka till användaren, så att anroparen kan agera på felet.

Krav

  • Datalagret och logiklagret skall aldrig returnera "null", 0, "false", etc. när något går fel, istället skall exceptions användas.
  • Varje metod i datalagret och logiklagret skall analyseras (använda Java Doc) för att hitta de fel som kan uppstå. Vilket exception som kastas skall reflektera vilket typ av problem som uppståt (dvs kasta inte ett exception som påstår att input är fel när det egentligen är ett nätverksfel).
  • Webblagret returnerar HTTP felkoder (dvs inte bara 200) med passande meddelanden.
  • Fel som uppstår som man inte har uttryckligen tagit hand om får inte läcka ut till anroparen.
  • Tester skall skrivas och code coverage skall vara 100% (eller motivera varför det inte är det).
  • Följ de riktlinjer som diskuterats på föreläsningarna och som det finns exempel på i den påbyggda föreläsningskoden.
  • Projektet och koden skall bli godkänd genom en manuell genomgång av kursledningen.
  • Observera att testen i account-xfinal-test inte längre bör fungera.

Sidansvarig: Anders Fröberg
Senast uppdaterad: 2023-09-01