Prøv blokkering
PHP har en baseklasse som heter Unntak og unntak blir kastet fra prøve blokkerer til Unntak eller underklasse av Unntak klasse.
Syntaks:
prøveFangsblokk
Å fange Blokk vises etter prøve blokkere. PHP støtter flere å fange blokker for å håndtere flere unntak. Når et unntak kaster, prøver PHP å matche den første fangstblokken, så stemmer den andre fangstblokken hvis ikke stemmer med den første, og så videre.
Syntaks:
prøveTil slutt blokkerer
Endelig kan blokkering brukes etter eller i stedet for fangstblokk i PHP, og denne blokken utføres når prøveblokk går ut. Enhver normal eller termineringskode kan legges til denne blokken etter å ha utført koden for prøveblokk.
Syntaks:
prøveEksempel-1: Bruke prøvefangstblokk for enkel feil
Følgende eksempel viser bruk av en prøvefangstblokk for et enkelt unntak. Opprett en PHP -fil med følgende skript. Verdien av spørringsparameteren 'Num'har blitt lest og sjekket i prøveblokken. Hvis verdien er under 10, vil prøveblokken kaste et unntak i fangstblokken. Ellers vil verdien bli skrevet ut. Catch Block vil fange unntaket og skrive ut meldingen Send fra Try Block. Hvis ingen spørringsparameter passerer, vil standardverdien være 100.
// Test tallet er 10 eller merAntallet må være 10 eller flere.
");Antallet er $ n
";Produksjon:
Kjør skriptet uten noen spørringsparameter.
http: // localhost/phpcode/Trycatch1.PHP
Kjør skriptet med en spørringsparameterverdi som er mindre enn 10.
http: // localhost/phpcode/Trycatch1.PHP?Num = 5
Kjør skriptet med en spørringsparameterverdi som er større enn 10.
http: // localhost/phpcode/Trycatch1.PHP?Num = 15
Eksempel-2: Håndtering av flere feil ved å arve unntaksklasse
Lag en PHP -fil med følgende skript for å håndtere flere unntak ved å bruke flere fangstblokker. En underklasse som heter 'MyException'har blitt opprettet ved å utvide baseklassen'Unntak'For å håndtere'Ugyldig URL -feil'. Baseklassen Unntak har blitt brukt til håndtering 'Tom URL -feil'.
// erklære en underklasse MyException ved å utvide unntaksklassen'.$ this-> melding.'er ikke en gyldig URL -adresse
';URL -adresse er tom.
");"".$ url."er en gyldig URL -adresse
";Produksjon:
Kjør skriptet uten noen spørringsparameter.
http: // localhost/phpcode/Trycatch2.PHP
Kjør skriptet med en spørringsparameter som heter URL uten noen verdi.
http: // localhost/phpcode/Trycatch2.PHP?URL =
Kjør skriptet med en spørringsparameter som heter URL med en ugyldig URL -verdi.
http: // localhost/phpcode/Trycatch2.PHP?URL = Google
Kjør skriptet med en spørringsparameter som heter URL med en gyldig URL -verdi.
http: // localhost/phpcode/Trycatch2.PHP?url = http: // google.com
Bilde
Eksempel-3: Håndtering av filfeil ved å bruke prøve, fange og til slutt blokkere
Lag en PHP -fil med følgende skript for å vite bruken av forsøk, fange og til slutt blokkere. Skriptet vil prøve å åpne filtesten.txt 'og prøve Block vil kaste et unntak hvis filen ikke eksisterer på det nåværende stedet eller ikke kan åpne. Fangstblokken vil skrive ut feilmeldingen som kastes fra prøveblokken. Koden til den endelig blokkeringen vil lukke filbehandleren etter å ha utført prøveblokken. Try Block vil skrive ut innholdet i filen hvis ingen feil vises.
error_rapporting (0);Kan ikke åpne filen.
");Produksjon:
Kjør manuset.
http: // localhost/phpcode/Trycatch3.PHP
Eksempel-4: Bruke nestet prøvefangstblokk
Lag en PHP-fil med følgende skript for å kjenne måten å bruke den nestede forsøksvangsblokken. Skriptet vil sjekke verdien som er hentet fra en URL er et tall eller ikke i den første forsøks-catch-blokken, og det tatt nummeret er større enn 100 eller ikke vil bli sjekket i den andre prøve-fangstblokken.
if (isset ($ _ get ['n']))Produksjon:
Kjør skriptet uten noen spørringsparameter.
http: // localhost/phpcode/Trycatch4.PHP
Kjør skriptet med spørringsparameterverdien mindre enn 100.
http: // localhost/phpcode/Trycatch4.PHP?n = 78
Kjør skriptet med spørringsparameterverdien større enn 100.
http: // localhost/phpcode/Trycatch4.PHP?n = 112
Eksempel-5: Bruke prøvefangstblokk med funksjonen
Lag en PHP-fil med følgende skript for å vite bruken av prøvefangstblokken med funksjonen. Skriptet vil ta to numeriske verdier fra URL-spørringsparametrene, og prøvekampblokken vil kalle en funksjon som vil kaste et unntak hvis "Divisjon med null”Feil har oppstått.
// definere funksjon for beregning av divisjonResultatet av $ a/$ b = $ resultat
";Feil: ', $ e-> getMessage (), "
";Produksjon:
Kjør skriptet uten noen spørringsparameter.
http: // localhost/phpcode/Trycatch5.PHP
Kjør skriptet med spørringsparameterverdiene, 10 og 5.
http: // localhost/phpcode/Trycatch5.PHP?n1 = 10 & n2 = 5
Kjør skriptet med spørringsparameterverdiene, 10 & 0.
http: // localhost/phpcode/Trycatch5.PHP?n1 = 10 & n2 = 0
Eksempel-6: Vis feilmelding i detalj for tilpasset unntak
Opprett en PHP -fil med følgende skript for å vise feilmeldingen i detalj ved å bruke forskjellige metoder i unntaksklassen. Skriptet tar filnavnet fra URL-parameteren og sjekker filen eksisterer eller ikke ved å bruke en prøvefangstblokk.
if (isset ($ _ få ['fn']))Produksjon:
Kjør skriptet uten noen spørringsparameter.
http: // localhost/phpcode/trycatch6.PHP
Kjør skriptet med spørringsparameteren som inneholder det ikke-eksisterende filnavnet.
http: // localhost/phpcode/trycatch6.PHP?FN = tekst.tekst
Kjør skriptet med spørringsparameteren som inneholder det eksisterende filnavnet.
http: // localhost/phpcode/trycatch6.PHP?FN = TryCatch5.PHP
Konklusjon
De grunnleggende bruken av prøvefangstblokken er blitt forklart i denne opplæringen ved å bruke veldig enkle PHP-skript. Jeg håper konseptet med unntakshåndtering i PHP vil bli ryddet etter å ha praktisert eksemplene på denne opplæringen riktig.