sanmai / trycatch
此包已被废弃,不再维护。未建议替代包。
异常处理调用包装器
v0.3.2
2020-12-28 15:32 UTC
Requires
- php: ^7.0 || ^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.16
- infection/infection: >=0.1
- phan/phan: >=1.0
- php-coveralls/php-coveralls: ^2.0
- phpstan/phpstan: >=0.1
- phpunit/phpunit: ^8 || ^6 || ^9
This package is auto-updated.
Last update: 2021-05-21 02:10:49 UTC
README
为闭包和其他可调用对象提供的异常处理调用包装器。
使用方法
假设你将闭包传递给配置某些依赖项或执行其他平凡任务
$object->setCallback($someCallback);
然后你突然发现你的回调在这里那里开始抛出异常。你从无法控制的地方获得了回调,因此你无法真正改变它的行为。
现在,如果你想优雅地处理某些类型的异常,你可以这样操作
$retval = $object->setCallback(\TryCatch\TryCatch::wrap($yourCallback) ->whenFailed(function (\Exception $e, $a, $b) { if ($e instanceof SpecificException) { // handle this one gracefully return null; } elseif ($a > $b) { // else check for rogue callback's arguments } throw $e; }); // $retval will be null in case of SpecificException being caught
你还可以查看传递给回调的参数。
安装
composer require sanmai/trycatch