Fel i PHP 7: Skillnad mellan sidversioner
Admin (diskussion | bidrag) |
Admin (diskussion | bidrag) |
||
Rad 7: | Rad 7: | ||
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. | 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. | ||
== 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 === | |||
== Fel i PHP 7 == | == Fel i PHP 7 == | ||
Rad 17: | Rad 26: | ||
=== Error-hierarki === | === Error-hierarki === | ||
<pre> | <pre> | ||
Throwable | [[Throwable]] | ||
Error | [[Error]] | ||
ArithmeticError | [[ArithmeticError]] | ||
DivisionByZeroError | [[DivisionByZeroError]] | ||
AssertionError | |||
CompileError | [[AssertionError]] | ||
ParseError | [[CompileError]] | ||
TypeError | [[ParseError]] | ||
ArgumentCountError | |||
ValueError | [[TypeError]] | ||
UnhandledMatchError | [[ArgumentCountError]] | ||
FiberError | |||
Exception | [[ValueError]] | ||
[[UnhandledMatchError]] | |||
[[FiberError]] | |||
[[Exception]] | |||
</pre> | </pre> | ||
= Sidslut = | |||
Orginalhemsidan på Engelska : | |||
<BR>[[PHP]] | |||
<BR>[[Språkreferens]] | |||
<BR>[[Språkreferens#Fel]] | |||
[[Kategori:Php]]<br> | |||
<BR> | |||
<hr> | |||
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på | |||
https://www.linux.se/kontaka-linux-se/ |
Versionen från 20 augusti 2024 kl. 08.33
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.
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
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]]
Sidslut
Orginalhemsidan på Engelska :
PHP
Språkreferens
Språkreferens#Fel
Det här är en maskinöversättning av PHP-manualen till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/