gpt4 book ai didi

php - Laravel 异常未捕获

转载 作者:行者123 更新时间:2023-12-05 08:23:13 25 4
gpt4 key购买 nike

我正在尝试执行一个非常基本的异常 try catch ,但它没有捕获到。

 $id =0;
try {
$question = $this->model->find($id); // will not find anything since $id = 0
$question->delete(); // throw an exception
return true;
} catch (\Exception $e) {
dd ('hello'); // should end up here, but no?!?!?
} catch (FatalThrowableError $f) {
echo ("fatal"); // or here... but no.
}

但捕获并没有“捕获”。我在浏览器中收到一个 fatal error ,指出对空对象调用了 delete。但这正是我想要做的:对空对象执行删除(id = 0 不在数据库中),以测试异常。

我试过了

use Symfony\Component\Debug\Exception;
use Symfony\Component\Debug\Exception\FatalThrowableError;

或者只是

Exception;
FatalThrowableError;

此外,拥有\Exception $e 或 Exception $e(带或不带)不会改变任何东西。

请注意,如果我添加类似 $foo = 4/0 的行,我将进入异常部分 (dd (hello))。

在 .env 中 APP_DEBUG=true, APP_LOG_LEVEL=debug

我在 Laravel 5.5 上,在 Windows 7 上使用 PHP 7.0.10。

最佳答案

http://php.net/manual/en/language.errors.php7.php

As the Error hierarchy does not inherit from Exception, code that uses catch (Exception $e) { ... } blocks to handle uncaught exceptions in PHP 5 will find that these Errors are not caught by these blocks. Either a catch (Error $e) { ... } block or a set_exception_handler() handler is required.

此外,您可以catch (\Throwable $e) {} 来解决ErrorException 类型。

关于php - Laravel 异常未捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47354057/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com