Open tenstad opened 1 year ago
@NilsOveTen Hva er løsningen på dette issuet? Forsto ikke helt hva Amund mente.
Exception er super-klassen, bruk noe mer spesifikkt. Om du fortsatt vil bruke noe veldig generelt kan du bruke BaseException
@NilsOveTen Python-dokumentasjonen sier det motsatte: BaseException er superklassen og Exception arver fra denne. Står at alle exceptions man regner med programmet kan håndtere er subklasser av Exception, mens andre exceptions skal propageres videre (som KeyboardInterrupt og SystemExit). Kan finne ut hvilke exceptions Graph.parse og Graph.serialize kan kaste og gi ulike feilmeldinger basert på det, men det blir jo potensielt litt knotete/veldig forgrenet kode.
I tillegg kommer rdflib med egne error messages som sendes videre når en Exception fanges her. Tenker de er mer informative.
De de skriver er at du skal bruke Exception om du oppretter egne exceptions, ikke at det er den du skal bruke for å fange feil.
Står lite mtp except, sikkert er ikke noen av de to alternativene "best practice". Du kan jo feks fange de feilene som har informative meldinger først og så en generell exept etterpå. Som kun logger, men ikke videresender.
https://github.com/Informasjonsforvaltning/rdf-prettifier/blob/21cdbf324a3d6e70ea344298d5a6188fd6f8c0a6/rdf_prettifier/main.py#L29
Forslag:
Fang rdflib-exceptions for seg selv: https://rdflib.readthedocs.io/en/stable/_modules/rdflib/exceptions.html Returner HTTPError med feilmelding.
Ved andre exceptions: logg feilmelding, kast videre/kræsj tjenesten?