看到了一篇文章 https://laravel-china.org/topics/2460
但却有些不理解的地方
例如说:一个 update 操作或者 delete 操作,应该是捕获异常还是 ifelse 判断
应该如何正确的使用 PHP 的捕获异常?
1
fuxkcsdn 2016-10-27 17:11:12 +08:00 1
上 php 7 ,可以全部用异常捕获(Exception 和 Throwable)
php 5 的话,可以参考一下文档,然后全部用异常捕获( Exception ) http://php.net/manual/en/function.set-error-handler.php http://php.net/manual/en/pdo.error-handling.php |
2
audi 2016-10-27 17:13:31 +08:00 1
从调用方来讲:调用一个方法,如果不能返回预期结果,是期望抛出一个异常的。而不是其他 -1 -2 之类的特殊值。
|
3
baiyi OP @fuxkcsdn 为什么要全部使用异常捕获呢,有什么优点? 我是在框架内开发的,框架是有自己的异常捕获的,我需不需要在控制器内使用异常捕获呢
|
4
fuxkcsdn 2016-10-27 17:20:10 +08:00 2
BTW , update 或 delete 操作既要 catch 也要 if else
try { 这里是关于 update 或 delete 执行成功或失败的逻辑,如 update user set active = 0 where id=123 and active = 1; 影响行数可能是 0 也可能是 1 ,这就得用 if else 来判断, delete 同理 } catch (Exception $e) { 这里 catch 的更多的是服务器错误或者 SQL 语法错误(不应该发生,至少在测试阶段就应该消灭掉这类错误) 比如 SQL 服务器突然挂掉,或者连接超时,或者某个命令导致服务器 CPU 占用 100%导致命令执行超时 或者哪个 SB 线上修改了表结构 } |
7
odirus 2016-10-27 17:23:26 +08:00 1
在 PHP5 里面捕获全部异常是一个伤心的话题
所以现在我基本用 Java 了 |