Fel i PHP 7: Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med '== Fel i PHP 7 == PHP 7 ändrar hur de flesta fel rapporteras av PHP. Istället för att rapportera fel genom den traditionella felrapporteringsmekanismen som användes i PHP 5, rapporteras de flesta fel nu genom att kasta Error-undantag. Precis som med vanliga undantag kommer dessa '''Error'''-undantag att bubbla upp tills de når det första matchande '''catch'''-blocket. Om det inte finns några matchande block, kommer en eventuell standardundantagshanterare install...') |
(Ingen skillnad)
|
Versionen från 20 augusti 2024 kl. 08.28
Fel i PHP 7
PHP 7 ändrar hur de flesta fel rapporteras av PHP. Istället för att rapportera fel genom den traditionella felrapporteringsmekanismen som användes i PHP 5, rapporteras de flesta fel nu genom att kasta Error-undantag.
Precis som med vanliga undantag kommer dessa Error-undantag att bubbla upp tills de når det första matchande catch-blocket. Om det inte finns några matchande block, kommer en eventuell standardundantagshanterare installerad med set_exception_handler() att anropas, och om det inte finns någon standardundantagshanterare, kommer undantaget att konverteras till ett fatalt fel och hanteras som ett traditionellt fel.
Eftersom Error-hierarkin inte ärver från Exception, kommer kod som använder catch (Exception $e) { ... }-block för att hantera ohanterade undantag i PHP 5 att upptäcka att dessa Errors inte fångas av dessa block. Antingen ett catch (Error $e) { ... }-block eller en set_exception_handler()-hanterare krävs.
Error-hierarki
- Throwable
* Error
* ArithmeticError
* DivisionByZeroError
* AssertionError
* CompileError
* ParseError
* TypeError
* ArgumentCountError
* ValueError
* UnhandledMatchError
* FiberError
* Exception