Håndtering av verdienes unntak i Python

Håndtering av verdienes unntak i Python
Når en feil oppstår på tidspunktet for utførelse av et hvilket som helst skript, kalles det et unntak. Try-Procept-blokken brukes til å håndtere unntak i Python. Mange innebygde unntak finnes i Python for å håndtere vanlige feil, for eksempel indekserror, nøkkelring, nameError, typeerror, valueerror, etc. De ValueError forekommer i Python når en riktig argumenttype sendes, men en feil verdi overføres til en funksjon. Denne typen feil vises hovedsakelig for matematiske operasjoner. Når ValueError oppstår og måten å håndtere denne feilen i Python har blitt vist i denne opplæringen.

Ulike bruksområder av ValueError -unntaket

Bruken av ValueError er vist i neste del av denne opplæringen.

Eksempel-1: Hev verdien for feil data

Lag en Python -fil med følgende skript som vil heve en verdi der INT () -funksjonen har blitt brukt til å konvertere en strengverdi.

# Definer den første variabelen
NUMMER1 = 100
# Definer den andre variabelen
nummer2 = int ('hei')
# Skriv ut summen av to variabler
Print (Number1 + Number2)

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Utgangen viser at ValueError har skjedd på linje nummer 4 der Int () -funksjonen har blitt brukt til å skjule strengen, 'Hallo'.

Eksempel-2: Håndter ValueError ved å bruke Try-Procept-blokken

Lag en Python -fil med følgende skript som vil ta alder Verdi fra brukeren. Hvis en ikke-numerisk verdi vil bli tatt fra brukeren for alder verdi, deretter prøve Blokk vil kaste ValueError unntak og skriv ut den tilpassede feilmeldingen. Hvis gyldig alder Verdien vil bli hentet fra brukeren, så blir meldingen skrevet ut basert på alder verdi.

prøve:
#Ta tallverdien fra brukeren
Alder = int (input ("Enter Your Age:"))
""
Kontroller at tallet er større enn eller lik 25
og mindre enn eller lik 55
""
Hvis alder> = 35 og alder <= 55:
trykk ("Du er kvalifisert for denne oppgaven.")
ellers:
trykk ("Du er ikke kvalifisert for oppgaven.")
unntatt ValueError:
#Trykkmelding for ValueError
trykk ("Bare alfabetiske tegn er akseptable.")

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor for inngangsverdiene, 56, 45, 23, og 'tjue'. Her har verdien oppstått for inngangsverdien, 'tjue'som er ugyldig.

Eksempel-3: Hev verdien i en funksjon

De ValueError kan genereres uten en prøve-bortsett fra blokkerer ved å bruke heve nøkkelord inne i Python -funksjonen. Opprett en Python -fil med følgende skript som beregner multiplikasjonen av to heltallstall. Hvis noen ugyldig argumentverdi blir sendt inn i funksjonen, så er ValueError vil bli oppdratt.

# Definer funksjonen for multiplikasjon
def multiplikasjon (a, b):
# Kontroller typen av argumentene
Hvis type (a) == str eller type (b) == str:
# Hev ValueError
Hev ValueError ('Verdien av noen eller begge variablene er /er ikke et tall.')
ellers:
# Multipliser variablene
resultat = a*b
# Skriv ut multiplikasjonsresultatet
Print ("Multiplikasjon av % D og % D er % D" % (A, B, Resultat)))
# Ring funksjonen med to tall
Multiplikasjon (4, 3)
# Ring funksjonen med ett tall og en streng
Multiplikasjon (5, '6')

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Her, når funksjonen er blitt kalt med verdiene 5 og '6', så ValueError har blitt hevet for ugyldig verdi, '6'.

Eksempel-4: Bruk av verdien i og utenfor funksjonen

Lag en Python -fil med følgende skript som viser bruken av ValueError inne og utenfor funksjonen. Her, The Sjekk() Funksjonen er definert for å finne ut om et tall er positivt eller negativt. Funksjonen vil heve ValueError Når en ugyldig argumentverdi vil bli gitt til funksjonen. Try-bortfallsblokken vil fange ValueError Bestått fra funksjonen og skriv ut feilmeldingen.

# Definer funksjonen
def check (n):
prøve:
# Konverter verdien til heltallet
val = int (n)
# Sjekk nummeret er positivt eller negativt
Hvis val> 0:
Print ("Antallet er positivt")
ellers:
Print ("Antallet er negativt")
unntatt verdi som e:
# Skriv ut feilmeldingen fra funksjonen
Skriv ut ("Feil i funksjonen:", E)
heve
prøve:
# Ta innspill fra brukeren
num = input ("Angi et tall en verdi:")
# Ring funksjonen
Sjekk (num)
unntatt verdi som e:
# Skriv ut feilmeldingen
skriv ut ("Feil utenfor funksjonen:", e)

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor med inngangsverdiene på 6, -3 og 'D'. Her, The ValueError har skjedd i og utenfor funksjonen for inngangsverdien, 'd'.

Eksempel-5: Bruk av verdien med annen feil

Lag en Python -fil med følgende skript som åpner en fil for å lese og skrive ut innholdet i filen. Hvis filnavnet som er brukt i skriptet ikke er tilgjengelig, IOERROR vil bli generert, og hvis filen inneholder noe alfabetisk tegn, så er ValueError vil bli generert.

prøve:
#Åpne filen for lesing
FH = Åpent ('Salg.tekst')
#Define mens du er sløyfe for å lese fillinje for linje
Mens FH:
#Konverter linjen inn i heltallet
Verdi = int (FH.readline ())
#Trykk verdien
trykk (verdi)
Bortsett fra (ValueError, Ioerror):
""
Skriv ut feilmeldingen hvis filen er
Kan ikke lese eller filen inneholder
eventuelle strengdata
""
trykk ("ValueError eller Ioerror har skjedd.")

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Her, The ValueError har blitt generert fordi Salg.tekst Filen inneholder alfabetiske tegn på linje nummer 6.

Eksempel-6: Bruk av ValueError med kommandolinjeargumentet

Lag en Python-fil med følgende skript som vil ta et tall fra kommandolinje-argumentverdien. Den spesielle meldingen vil bli skrevet ut hvis en numerisk verdi er gitt i kommandolinje-argumentet, ellers ValueError vil bli generert og en feilmelding vil bli skrevet ut.

#IMPORT SYS -modul
Importer Sys
prøve:
#Sjekk antall argumenter
Hvis Len (SYS.argv)> 1:
#Convert argumentverdien til heltallet
num = int (sys.Argv [1])
#Sjekk tallet er større enn eller lik 100
Hvis num> = 100:
Skriv ut ("Du må oppgi et tall mindre enn 100.")
ellers:
utskrift ("Det angitte tallet er % d" % num)
ellers:
trykk ("Ingen argumentverdi er gitt.")
unntatt ValueError:
#Trykkmelding for ValueError
trykk ("Du må skrive et nummer")
endelig:
#Trykk termineringsmeldingen
trykk ("Programmet avsluttes.")

Produksjon:

Følgende utdata vises etter å ha utført skriptet ovenfor når skriptet utføres uten noe argument, med argumentverdiene 600 og 60.

Konklusjon

Hensikten med å bruke ValueError -unntaket er vist i denne opplæringen ved å bruke flere eksempler for å hjelpe Python -brukerne til å kjenne bruken av dette unntaket riktig.