Hoe toe te passen Probeer Catch Block in PHP - Linux Hint

Hoe toe te passen Probeer Catch Block in PHP - Linux Hint

Het afhandelen van uitzonderingen is een zeer belangrijk kenmerk van elke objectgeoriënteerde programmering. Wanneer een logische of systeemfout optreedt na het uitvoeren van een code, wordt dit een uitzondering genoemd en de techniek waarmee de codeur de fouten op de juiste manier kan afhandelen, wordt het afhandelen van uitzonderingen genoemd. Het wordt gebruikt om onverwachte resultaten van de eindgebruikers te vermijden, de applicatiebeveiliging te verbeteren en vooraf gedefinieerde fouten efficiënt af te handelen. Deze functie wordt ondersteund door PHP vanaf versie 5. Proberen block wordt gebruikt om de uitzondering te genereren als er een fout optreedt en vangst of Tenslotte block wordt gebruikt om de uitzondering in PHP af te handelen. Deze tutorial zal je helpen om het gebruik van exception handling van objectgeoriënteerd programmeren met PHP te leren.

PHP heeft een basisklasse met de naam Uitzondering en uitzonderingen worden geworpen proberen blok naar Uitzondering of subklasse van Uitzondering klasse.

Syntaxis:

Vangblok:

vangst blok verschijnt na proberen blok. PHP ondersteunt meerdere vangst blokken om meerdere uitzonderingen af ​​te handelen. Wanneer een uitzondering wordt gegenereerd, probeert PHP te matchen met het eerste catch-blok, dan het tweede catch-blok als het niet overeenkomt met het eerste enzovoort.

Syntaxis:

proberen

//Hoofd code

vangst (Uitzondering $ e)

//Fout bij het overhandigen van code

Eindelijk blokkeren:

eindelijk block kan gebruikt worden na of in plaats van catch block in PHP en dit block wordt uitgevoerd wanneer try block exits. Elke normale of beëindigingscode kan in dit blok worden toegevoegd na het uitvoeren van de code van het try-blok.

Syntaxis:

proberen

//Hoofd code

vangst (Uitzondering $ e)

//Fout bij het overhandigen van code

Tenslotte

//Normale code

Voorbeeld-1: Afhandeling van uitzonderingen met behulp van een eenvoudig try-catch-blok

Het volgende voorbeeld toont het gebruik van een try-catch-blok voor een enkele uitzondering. Maak een PHP-bestand met de naam 'trycatch1.php'onder de map'/ var / www / html / phpcode'en voeg het volgende script toe. De waarde van de queryparameter 'num'wordt gelezen en gecontroleerd in het try-blok. Als de waarde lager is dan 10, gooit het try-blok een uitzondering in het catch-blok, anders wordt de waarde afgedrukt. Catch-blok zal de uitzondering opvangen en het bericht afdrukken dat is verzonden vanuit het try-blok. Als er geen queryparameter wordt doorgegeven, is de standaardwaarde 100.

// Test het aantal is 10 of meer
proberen


als(is ingesteld($ _GET['num']))
// Lees de waarde van de url
$ n = $ _GET['num'];
anders
// Stel de standaardwaarde in
$ n=100;

als($ n <10)

// Als de uitzondering gooit, zal catch-blok het volgende foutbericht weergeven
Gooi nieuw Uitzondering("

Het nummer
moet 10 of meer zijn.

"
);

anders

// Voert deze regel uit als er geen fout optreedt.
echo "

Het nummer is $ n

"
;



// vang de uitzondering van het try-blok
vangst(Uitzondering $ e)

// Druk het foutbericht af dat is doorgegeven van het try-blok
echo $ e->getMessage();


?>

Uitgang:

Voer het script uit zonder enige queryparameter.

http: //localhost/phpcode/trycatch1.php

Voer het script uit met een queryparameterwaarde die kleiner is dan 10.

http: //localhost/phpcode/trycatch1.php? num = 5

Voer het script uit met een queryparameterwaarde die groter is dan 10.

http: //localhost/phpcode/trycatch1.php? num = 15

Voorbeeld-2: Afhandeling van uitzonderingen met behulp van meerdere catch-blokken

Maak een PHP-bestand met de naam 'trycatch2.php'onder de vorige map en voeg het volgende script toe om de meerdere uitzonderingen af ​​te handelen door meerdere catch-blokken te gebruiken. Een subklasse met de naam 'myException ' wordt gemaakt door de basisklasse 'Uitzondering' ermee omgaan 'ongeldige url-fout'. De basisklasse Uitzondering wordt gebruikt voor 'lege url-fout'.



// Declareer een subklasse myException door de Exception-klasse uit te breiden
klasse myException strekt zich uit Uitzondering

// zet het foutbericht in de constructor
openbaar functie __construct($ bericht = nul, $ code = 0)
$ dit->bericht = $ bericht;



// toon het foutbericht
openbaar functie display_error()

echo '

'.$ dit->bericht.'is geen geldig URL-adres

'
;



proberen

// stel het url-adres in met de queryparameter of de standaardwaarde
$ url=is ingesteld($ _GET['url'])?$ _GET['url']:"https://linuxhint.com";

// controleer of het url-adres leeg is of niet
als($ url == "")
// Als het url-adres leeg is, wordt het volgende foutbericht weergegeven
Gooi nieuw Uitzondering("

URL-adres is leeg.

"
);


// controleer of de url-adressen geldig of ongeldig zijn
elseif (!filter_var($ url, FILTER_VALIDATE_URL))
// Als het url-adres ongeldig is, wordt een uitzondering gegenereerd met een ongeldig url-adres
Gooi nieuw myException($ url);


anders

// print bericht voor geldig url-adres
echo "

".$ url."is een geldig url-adres

"
;




// omgaan met ongeldige url-uitzondering
vangst(myException $ e)

// roep de methode van de subklasse aan om het foutbericht af te drukken
echo $ e->display_error();

// omgaan met lege url-uitzondering
vangst(Uitzondering $ e)

// print foutmelding voor leeg url-adres
echo $ e->getMessage();


?>

Uitgang:

Voer het script uit zonder enige queryparameter.

http: //localhost/phpcode/trycatch2.php

Voer het script uit met een queryparameter met de naam url zonder enige waarde.

http: //localhost/phpcode/trycatch2.php? url =

Voer het script uit met een queryparameter met de naam url met een ongeldige url-waarde.

http: //localhost/phpcode/trycatch2.php? url = google

Voer het script uit met een queryparameter met de naam url met een geldige url-waarde.

http: //localhost/phpcode/trycatch2.php? url = http: //google.com

Voorbeeld-3: Afhandeling van uitzonderingen met behulp van try, catch en uiteindelijk block

Maak een PHP-bestand met de naam 'trycatch3.php' onder de vorige map en voeg het volgende script toe om het gebruik van try, catch en uiteindelijk block te kennen. Het script zal proberen het bestand 'test.txt' te openen en try block zal een uitzondering genereren als het bestand niet bestaat op de huidige locatie of niet kan openen. Catch-blok zal het foutbericht afdrukken dat wordt gegenereerd door het try-blok. De code van final block zal de bestandshandler sluiten na het uitvoeren van het try-blok. Met Try block wordt de inhoud van het bestand afgedrukt als er geen fout optreedt.



proberen


// Probeer een bestand te openen om te lezen
$ file_handler = fopen("test.txt", "r");
als(!$ file_handler)

// Gooi de uitzondering als het bestand niet kan worden geopend
Gooi nieuw Uitzondering("

Kan het bestand niet openen.

"
);

anders

// Druk de cent van het bestand af
terwijl(!feof($ file_handler))

echo fgets($ file_handler) . "
"
;





vangst (Uitzondering $ e)
// Druk het foutbericht af voor het openen van een bestandsfoutuitzondering
echo $ e->getMessage();


Tenslotte

// Sluit de bestandshandler na het uitvoeren van de code van het try-blok
fclose($ file_handler);


?>

Uitgang:

Voer het script uit.

http: //localhost/phpcode/trycatch3.php

Het basisgebruik van het try-catch-blok wordt in deze tutorial uitgelegd aan de hand van enkele eenvoudige codevoorbeelden. Hoop, het concept van het afhandelen van uitzonderingen in PHP zal worden gewist na het lezen van deze tutorial.

Meer info in deze video:

[embed]https://www.youtube.com/watch?v=mQC3zgjGvPA[/embed]

U bent misschien ook geïnteresseerd in