PHP-foutafhandelingsmethoden: - Gebruik van de die()-methode
- Aangepaste foutafhandeling
Basisfoutafhandeling: gebruik de functie die() De functiedie() drukt een bericht af en sluit het huidige script af.
Syntaxis:die ($message)
Voorbeeld:< /b>
// PHP-code met standaard foutafhandeling
$file
=
fopen
(
"engineer.txt"
,
"w"
);
?>
Opmerking.Voer de bovenstaande code uit en het bestand engineer.txt ontbreekt , waarna een runtime-fout wordt weergegeven.
Runtime-fout: PHP-waarschuwing: fopen (engineer.txt): kan stream niet openen: toestemming geweigerd in /home/dac923dff0a2558b37ba742613273073.php op regel 2
Gebruik de functie die() om deze fout te voorkomen. De functie die() is hieronder geïmplementeerd:Voorbeeld:
// PHP-code om te controleren op fouten
// als er geen bestand is
// sluit het script af
if
(!
file_exists
(
"engineer.txt"
)) {
die
(
" Bestand is niet aanwezig "
);
}
// als bestand aanwezig is
// ga dan verder
else
{
$file
=
fopen
(
" engineer.txt "
,
" w "
);
}
?>
Opmerking.Als het bestand engineer is .txt ontbreekt, wordt de uitvoer weergegeven.
AfsluitenBestand is niet aanwezig
Aangepaste foutafhandelaars:Een aangepast maken error handler in PHP is heel eenvoudig. Maak een functie die kan worden aangeroepen wanneer er een fout optreedt in PHP.Syntaxis:error_function ($error_level, $error_message, $error_file, $error_line, $error_context)
Parameters:Deze functie heeft vijf parameters zoals hierboven en hieronder beschreven:- $error_level: Dit is een vereiste parameter en moet een geheel getal zijn. Er zijn vooraf gedefinieerde foutniveaus.
- $error_message:Dit is een vereiste parameter en dit is het bericht dat de gebruiker wil afdrukken.
- $ error_file: is een optionele parameter die wordt gebruikt om het bestand te specificeren waarin de fout is opgetreden.
- $error_line:is een optionele parameter die wordt gebruikt om het regelnummer op te geven waar de fout zich voordeed heeft plaatsgevonden.
- $error_context:dit is een optionele parameter die wordt gebruikt om een array te specificeren die elke variabele en hun waarde bevat wanneer er een fout optreedt.
error_level:dit zijn de mogelijke foutniveaus, die hieronder worden vermeld:- 1: .E_ERROR: fatale runtime-fout is gestopt
- 2: E_WARNING: niet- fatale runtime-fout, scriptuitvoering gestopt
- 4: E_PARSE: compileerfout gegenereerd door de parser
- 8: E_NOT ICE: het script heeft iets aangetroffen dat een fout kan zijn
- 16: E_CORE_ERROR: fatale fouten die zijn opgetreden tijdens de eerste uitvoering van het script
- 32: E_CORE_WARNING: niet-fatale fouten die zijn opgetreden tijdens de eerste uitvoering van het script
- 8191: E_ALL: alle fouten en waarschuwingen
set_error_handler() functie:Na het aanmaken van de myerror() functie, moet je een custom handler fouten installeren omdat PHP dit normaal afhandelt, maar als de gebruiker doet een aangepaste foutafhandeling, dan moet de gebruiker dit instellen in plaats van een argument en geef de myerror-functie door als een tekenreeks.Voorbeeld:
// Maak mijn foutfunctie die het bericht afdrukt
// gebruiker
functie
mijnfout (
$error_no
,
$error_msg
) {
echo
"Fout: [$error_no] $error_msg"
;
echo
"Nu eindigt het script "
;
// Als er een fout optreedt, moet het script worden gestopt
die
();
}
// Instelling set_error_handler
set_error_handler (
"myerror"
);
$a
= 10;
$b
= 0;
// Dit zal genereer een fout
echo
(
$a
/
$b
) ;;
?>
Uitvoer:Fout: [2] Divisie b y nul Nu eindigt het script
Uitvoer:probeer altijd fouten af te handelen met behulp van aangepaste foutafhandeling, omdat het een specifieker bericht zal tonen volgens de gebruiker, wat nuttig kan zijn voor de gebruiker. Als de fout niet wordt afgehandeld met aangepaste foutafhandeling, treedt er een fout op, dan wordt het script standaard gestopt, maar als het de fout afhandelt met aangepaste foutafhandeling, kan het script doorgaan nadat het foutbericht is weergegeven.