Python skaper tilpassede unntak

Python skaper tilpassede unntak
Mens du jobber i ethvert programmeringsmiljø, kan du ha møtt flere feil når noe går galt med koden din. De unntakene som oppstår automatisk av tolk eller kompilator, sies å være innebygde unntak. Akkurat som innebygde unntak gir noen programmeringsspråk oss muligheten til å lage tilpassede unntak i henhold til våre behov. Har du noen gang prøvd å opprette dine unntak i prøvefangstblokken av kode i objektorientert programmering? Innenfor denne artikkelen vil vi diskutere en enkel metode for å lage tilpassede unntak i Python. La oss starte med lanseringen av terminalapplikasjonen fra aktivitetsområdet Linux ved å bruke den enkle snarveien “Ctrl+Alt+T”. Du må installere Pythons siste versjon, og du er god til å gå.

Etter Python -installasjonen trenger vi en Python -fil for å lage koder. For dette vil vi bruke "Touch" nøkkelordet i spørringsområdet og filnavnet for en fil som skal opprettes. Utfør denne kommandoen og filen vil bli generert i den nåværende "Home" -katalogen. Etter det kan du prøve å åpne den nye filen din med en innebygd redaktør av Ubuntu 20.04 i.e., Vi åpner den i Nano Editor.

Eksempel 01:

Den tomme filen vil bli lansert og klar for din bruk. For det første vil vi se på de innebygde Python-unntakene. For dette har vi lagt til Python-Support “#!/usr/bin/python ”på første linje og opprettet en ny klasse“ test ”. Klassen inneholder en variabel “x” med en viss verdi. Ta en god titt på verdien av “X” da det inneholder det eneste sitatet mellom det vil føre til en feil. Vi har laget et objekt “T” for klassetesten ved hjelp av standardmetoden. Dette nyopplagte objektet “T” har blitt brukt til å kalle variabelen “X” via “Dot” -metoden. Dette er gjort i utskriftserklæringen for å vise verdien av “x”.

Python “Custom.Py ”-filen som nettopp er oppdatert med koden, er utført i Python Pool. Vi har fått unntaket “SyntaxError: EOL mens du skanner streng bokstavelig” etter å ha kjørt denne koden. Feilen indikerer at feilen er forårsaket på grunn av verdien av "x".

Nå skal vi se på den enkleste måten å lage tilpassede unntak ved å bruke Python -koden vår. Så start den samme skikken.PY -fil i GNU Nano -redigereren med utførelsen av en "Nano" -instruksjon på Shell Query -området. Lagt til Python-støtter “#!/usr/bin/python ”på den første linjen i denne filen. Initialisert en ny klasse som heter “Customexception” som er avledet fra den innebygde unntaksklassen, da vi har implementert "unntak" -klassen i parameteren. Dette betyr at vår ny genererte klasse vil implementere unntaksklassen for å generere et tilpasset unntak av vårt valg.

Nøkkelordet "Pass" har blitt brukt for å bare unngå den komplekse koden og komme mot neste trinn for å generere et unntak. Nøkkelordet “Raise” har blitt brukt til å generere et unntak og ringe den nyopplagte klassen “Customexception” som stammer fra “Unntak” -klassen. "Raise" -tnøkkelordlinjen vil generere en feil ved utførelse som viser linjenummeret og hoved- () -funksjonen ved utgangen. La oss lagre denne koden først og avslutte filen ved hjelp av Ctrl+S og Ctrl+X.

Når du kjører den oppdaterte Python -filen “Custom.py ”, vi har fått feilen“ __main__.Customexception ”. Ettersom vi ikke har brukt noen uttalelse i klassen, er det derfor den genererer en enkel utgang for et unntak uten noen unntak forklaringsmelding.

Eksempel 02:

La oss dykke litt dypere inn i konseptet med å lage tilpassede unntak i Python. Det første eksemplet ble brukt til å vise den mest enkle syntaksen for å lage tilpassede unntak i Python. Nå vil vi lage tilpassede unntak med noen feil som forklarer meldingen sammen med noen forhold. Vi har åpnet filen og erklært tre nye klasser: ERR, Smalllexception og LargeException.ERR-klassen er avledet fra den innebygde unntaksklassen, mens de to andre klassene er avledet fra "feil" -klassen.

Initialiser en variabel “x” med verdi 4 og brukte prøve-unntaksblokken i koden. "Try" -blokken tar heltallinngang fra en bruker via "input" -funksjonen og lagrer den til en variabel "n". Den nestede "if-elv" -uttalelsen er her for å sammenligne verdien av variabel "n" med verdien av variabel "x". Hvis verdien “n” er mindre enn verdien “x”, vil den heve Smalllexception ved å bruke Raise nøkkelordet sammen med klassenavnet “Smalllexception”. Hvis verdien “n” er større enn verdien “x”, vil den heve Largexception ved å bruke klassenavnet “Largexception”. Hvis begge forholdene ikke oppfyller, vil vi følge med en enkel melding på skallet ved å bruke utskriftserklæringen i.e., “Verdien er lik”.

Etter "prøv" -blokken har vi brukt 2 unntatt deler for å heve feilmeldingene i henhold til tilstanden. Hvis verdien er mindre enn de nevnte, vil unntaket "Smalllexception" bli utløst, ellers vil storexception bli utført. Utskriftserklæringen innen begge unntatt deler bruker strengmeldingen i henhold til deres behov i.e., liten og stor.

Ved utførelse har brukeren vår merverdi 8 i.e., større enn verdi x = 4. Largexception er utført. På løping igjen la brukeren til den lille verdien 2 og fikk utført Smalllexception. Endelig har brukeren lagt til lik verdien som suksessmeldingen vises.

Hvis du vil prøve å legge til inngangen fra brukeren til den ønskede, kan du benytte deg av "mens" -løkken som vi gjorde under.

Nå vil utgangen være noe sånt nedenfor.

Eksempel 03:

Det er en annen måte å lage tilpassede unntak i Python, og det er bruken av "__init__" og "__str__" -funksjonen til Python. "__Init__" sies å være konstruktøren av en klasse som vil bli brukt til å initialisere verdier. Vi har laget en unntaksklasse “ERR” som implementerer den innebygde “unntak” -klassen i denne Python-koden.

Ved å ta to argumenter vil det initialisere verdien av variabel "alder" og "msg" med nøkkelobjektet "selv". "Unntaket" superklasse "__init__" -konstruktørfunksjonen har blitt kalt ved hjelp av "Super ()" og passert "MSG" -variabelen i parameteren. "__Str__" -metoden brukes til å vise "feil" -meldingen i henhold til strengformatet som vises i returerklæringen.

"Alder" -variabelen tar tallverdi fra brukeren via "input" -funksjonen og strengvariabelen "MSG" initialiseres. Uttalelsen om "if-elv" er her for å heve et tilpasset unntak når verdien "alder" er mindre enn 20 og større enn 50. Ellers, "ellers" -delen vil vise suksessmeldingen.

Ved den første utførelsen la brukeren til 40 og fikk suksessmeldingen i.e., 40> 20 og 40 < 50.

Ved den andre utførelsen la brukeren 80 som inngangsalder i.e., 80 er større enn 50. Vi har fått unntaket i samme format som vi har erklært i “__str” -funksjonen.

Konklusjon

Dette handlet om å gjøre tilpassede unntak i pythonmiljøet vårt der det er nødvendig. Vi har diskutert ganske enkleste måte å gjøre det enkelt for brukerne mine jeg.e., Starteksempler fra den mest grunnleggende syntaksen. Vi har også oppdaget bruken av "__init__" og "__str__" -funksjoner som brukes i opprettelsen av tilpassede unntak. Dette var ganske enkelt å implementere.