加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP AJAX 错误处理

发布时间:2022-11-19 16:05:12 所属栏目:PHP教程 来源:转载
导读: 我目前以类似于以下方式处理 AJAX 请求期间的错误:
try {
// code

if (some_error_condition) {
throw new \Exception('error');
}

// other code

if (so

我目前以类似于以下方式处理 AJAX 请求期间的错误:

try {
    // code

    if (some_error_condition) {
        throw new \Exception('error');
    }

    // other code

    if (some_other_error_condition) {
        throw new \Exception('other error');
    }

    // more code

    $response = array(
        'success' => TRUE,
        'data'    => 'stuff here'
    );
} catch (Exception $e) {
    $response = array(
        'success' => FALSE,
        'error'   => $e->getMessage()
    );
}

header('Content-Type: application/json');
echo json_encode($response);

我的问题是:有没有比这更好的方法来处理多种可能的错误情况,同时仍然遵守 DRY 原则? 我认为这种方法比巨大的嵌套 if/else 混乱更清晰、更容易遵循,但它有点让人想起goto代码。

也许是一种面向对象的方式?

解决方案

这对我来说是完全有效的解决方案,除了您可以为您的异常使用不同的异常类并将实际逻辑封装在某个对象中,例如

class Handler {
      //this function executes code and throws exception - no error handling logic.
     public static function doSomeCode() { 
         (...)
         return $response;
     }
}

try {
    $response = Handler::doSomeCode();
    renderResponse();
} catch (SomeError $e) {
     $err = 'some error';
     renderError($err);
} catch (Exception $e) {
     header('500 Internal Server Error'); //this is pseudo code!
} 

您的异常类(通用异常除外)可以处理呈现错误PHP错误处理,异常类会触发 500(它永远不会发生)。通过这种方式,您可以将实际代码执行与错误处理分开,并且在适当的异常情况下,对象模型不会重复错误处理。

2022年最受欢迎的8大编程语言

为什么都说程序员找不到女朋友,但是身边程序猿的却没一个单身的

30岁以上你还死磕技术,别说拿高薪,可能你连饭碗都会保不住

程序员被开除,老板:“有你参与的项目全黄了!”

笑话:一个测试工程师走进一家酒吧

趣图:程序员头疼的4种原因

笑话:面试官:请拿出一段体现你水平的代码。我: sudo rm -rf /*面试官:这体现了你哪方面能力?

php精选:aardio + PHP 可视化快速开发独立 EXE 桌面程序

网友说:做开发,不被领导喜欢怎么办?

网友说:我奉劝各位,一定不能在职场透露自己的家庭条件

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!