Sex*_*yMF 10 php try-catch laravel php-7.1 laravel-5.4
我有以下情况:
try {
DB::beginTransaction();
$task = new Task();
$task->setTracker("");
//thrown \Symfony\Component\Debug\Exception\FatalThrowableError
DB::commit();
}catch (\Exception $e){
DB::rollBack();
Log::error($e);
//throw $e;
}
Run Code Online (Sandbox Code Playgroud)
我没有进入捕捞区.
知道为什么吗?
更新
这是抛出的错误:
[Symfony\Component\Debug\Exception\FatalThrowableError]
Type error: Argument 1 passed to App\Models\Task::setTracker() must be an instance of Carbon\Carbon, integer given, called in /var/www/app/Services/ShareLogic.php on line 60
并且不会被抓住
谢谢
它不会捕获异常,因为您试图捕获\Exception未Symfony\Component\Debug\Exception\FatalThrowableError扩展的异常。
相反,尝试通过导入来捕获实际的异常。
use Symfony\Component\Debug\Exception\FatalThrowableError;
Run Code Online (Sandbox Code Playgroud)
然后你就可以做..
try {
//
} catch(FatalThrowableError e) {
//
}
Run Code Online (Sandbox Code Playgroud)
好吧,除了上面的解决方案之外,PHP 7+ 处理错误的方式似乎与 PHP 5 有点不同。所以试试这个..
try {
//
} catch(Error $e) {
// This should work
} catch(Throwable $e) {
// This should work as well
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6778 次 |
| 最近记录: |