Fel i PHP 7: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
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/