Video: Fun with Music and Programming by Connor Harris and Stephen Krewson 2024
Python gir et vell av standard unntak som du bør bruke når det er mulig. Disse unntakene er utrolig fleksible, og du kan til og med endre dem etter behov (innenfor grunn) for å møte spesifikke behov.
Noen ganger må du bare lage et egendefinert unntak fordi ingen av standard unntakene vil fungere. Kanskje unntaksnavnet bare fortelle seeren ikke hensikten med at unntaket tjener. Du må kanskje ha et tilpasset unntak for spesialisert databasearbeid eller når du arbeider med en tjeneste.
Dette eksemplet viser en rask metode for å lage dine egne unntak. For å utføre denne oppgaven må du opprette en klasse som bruker et eksisterende unntak som utgangspunkt. For å gjøre ting litt enklere, oppretter dette eksemplet et unntak som bygger på funksjonaliteten som tilbys av ValueError-unntaket.
Fordelen med å bruke denne tilnærmingen er at denne tilnærmingen forteller alle som følger deg nøyaktig hva tillegget til ValueError-unntaket er; I tillegg gjør det det endrede unntaket lettere å bruke.
-
Åpne et Python-filvindu.
Du ser en redaktør der du kan skrive eksempelkoden.
-
Skriv inn følgende kode i vinduet - trykk Enter etter hver linje:
klasse CustomValueError (ValueError): def __init __ (self, arg): selv. strerror = arg selv. args = {arg} try: heve CustomValueError ("Verdien må være innen 1 og 10.") unntatt CustomValueError som e: print ("CustomValueError Exception!", e. strerror)
Dette eksemplet har samme feil i begge strerror og args slik at utvikleren har tilgang til enten (som normalt ville skje).
Koden begynner ved å lage CustomValueError-klassen som bruker ValueError-unntaksklassen som utgangspunkt. Funksjonen __init __ () gir midler for å opprette en ny forekomst av denne klassen. Tenk på klassen som en blåkopi og forekomsten som bygningen skapt fra blåkopien.
Legg merke til at strerrorattributtet har verdien tildelt direkte til den, men args mottar den som en matrise. Args-medlemmet inneholder normalt en rekke av alle unntaksverdiene, så dette er standardprosedyre, selv når args inneholder bare en verdi som den gjør nå.
Koden for bruk av unntaket er betydelig enklere enn å endre ValueError direkte. Alt du gjør er å ringe opp med navnet på unntaket og argumentene du vil passere, alt på en linje.
-
Velg Kjør → Kjør modul.
Du ser et Python Shell-vindu åpent.Søknaden viser bokstavssekvensen, sammen med bokstavsnummeret.