In Scorenotatie bij darts1 werd de functie dart_score geschreven. In deze oefening wordt foutafhandeling toegevoegd voor die functie.
De functie dart_score moet nog altijd de punten berekenen voor een worp. De functie heeft als enige parameter een string in dartsnotatie. Indien de opgegeven score ongeldig is, moet nu een fout worden opgeworden. Hieronder wordt dit verder beschreven - behandel de fouten in de opgegeven volgorde.
De punten per sector zijn altijd positief en nooit groter zijn dan 20. De punten voor SINGLE BULL is exact 25. Indien hier niet aan voldaan is, moet de functie eigen exceptie opwerpen op met als foutbericht: “{punten} niet correct.”
Elke andere fout in de score wordt aangegeven als ‘spellingsfout’. De functie werpt een eigen exceptie op: : “{score} heeft spellingsfout.”
Bekijk de voorbeelden hieronder.
>>> dart_score("T18")
54
>>> dart_score("11")
11
>>> dart_score("BULL")
50
>>> dart_score("MISS")
0
>>> dart_score("T10")
30
>>> dart_score("D20")
40
>>> dart_score("TBULL")
Exception: TBULL heeft spellingsfout.
>>> dart_score("99")
Exception: 99 niet correct.
>>> dart_score("MSS")
Exception: MSS heeft spellingsfout.
>>> dart_score("T100")
Exception: 100 niet correct.
>>> dart_score("H42")
Exception: H42 heeft spellingsfout.