Gå til innhold

Anbefalte innlegg

Hvordan handler man en error på den beste måten i disse to tilfellene?

 

Case 1

Jeg har flere funksjoner som jeg skal kalle, og jeg vil sjekke en og hver for error, f.eks

 

loadMusic()

loadImages()

loadLayout()

 

Skal jeg da omringe hver funksjon med try ? Og hvordan gjør jeg det best mulig. Om loadMusic() feiler vil jeg f.eks prøve på nytt og om det fortsatt ikke går vil jeg skippe funksjonen og printe ut "lasting av musikk feilet, men programmet fortsetter"

 

Case 2

Hvordan kan jeg lage en custom/standard error handling for hele programmet? Om det blir en error en eller annen plass i programmet vil jeg kalle en spesiell funksjon som printer ut f.eks "programmet møtte på en feil" for så å stoppe det eller spille av en lyd.

Må jeg da omringe hele programmet med try ?

 

-Daniel

Lenke til kommentar
Videoannonse
Annonse

En hver funksjon hvor det kan skje en feil burde kaste en exception om dette skjer. For din egen del anbefaler jeg å sørge for at det er fornufitge exceptions som blir kastet - og noen ganger er det derfor nødvendig å lage egne exception-klasser.

 

F.eks. i Case 1 ville jeg latt alle funksjonene kaste exception og hatt de i en separat "Try except" siden de kan feile hver for seg og hvordan du håndterer feilen vil være forskjellig i de ulike tilfellene. Og selv om loadMusic() feiler ønsker du fortsatt at den skal fortsette med loadImages.

 

For Case 2, så ja. Putt hele programmet inn i en Try og håndter feilene som kommer ut. Men prøv også å håndtere feil du vet kan oppstå ganske nærme der de kan skje i koden. Det vil spare deg for mye bry i mange tilfeller. Husk at ulike typer feil burde kaste ulike typer exceptions slik at feilhåndteringskoden du har rundt programmet kan se forskjell på de ulike feilene som kan skje.

 

side-node: I henhold til PEP-8 er det ikke camelcase som er normalt å bruke på funksjonsnavn men "lowercase_with_underscores" og helst et enkelt ord. Altså burde funksjonene/metodne hete ting som load_images og load_music

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...