Ga verder met de oefening
Vervoer:
Informatie uit csv-bestand verwerken - met foutafhandeling.
De foutafhandeling wordt hier verder verfijnd.
Opdracht
- De functie is_truck_overladen doet dezelfde verwerking, maar voor elke fout die voorkomt moet
de functie een eigen exceptie opwerpen. De functie geeft enkel voor een lijn zonder fouten True/False
terug.
Foutberichten: Bij een fout wordt een exceptie opgeworpen met volgende (letterlijke) tekst: "Fout in
splitsen lijn", "Fout veld: Leeg gewicht", "Fout veld: Lading", "Fout veld: Max
gewicht".
- Pas ook de functie aantal_overladen(bestandsnaam) aan:
- De functie gebruikt nog steeds de functie is_truck_overladen voor elke regel van het bestand,
telt het aantal overladen trucks, en telt bovendien het aantal foute lijnen.
- Indien er geen enkele fout is, wordt het aantal overladen truck's teruggeven.
- Indien het bestand fouten bevat werpt deze functie een eigen exceptie op met als foutbericht:
"{aantal}
lijnen met fouten"
- Indien het bestand niet gevonden wordt, dan werpt deze functie een eigen exceptie op met als foutbericht:
"{bestandsnaam} niet gevonden"
Opmerking: geen enkel foutbericht heeft een punt achteraan. De "-tekens behoren niet tot het foutbericht.
Voorbeelden
>>> is_truck_overladen("MT;3343;2121;3911;nog iets")
Exception: Fout in splitsen lijn
>>> is_truck_overladen("MT;28d;117;3120")
Exception: Fout veld: Leeg gewicht
>>> is_truck_overladen("MT;3348;3fout;3601")
Exception: Fout veld: Lading
>>> is_truck_overladen("MT;3348;3601;fout")
Exception: Fout veld: Max gewicht
>>> is_truck_overladen("MT;1000;5000;3000")
True
>>> is_truck_overladen("TR;1000;300")
False
>>> aantal_overladen("vervoer_met_fouten.csv")
Exception: 2 lijnen met fouten
>>> aantal_overladen("fout_bestand.csv")
Exception: fout_bestand.csv niet gevonden