异常处理 请教一个问题?

        try {
            //这里是代码
        } catch (\Exception $exception) {
            echo $exception->getMessage(); die();
        }
        //这后面还有很多代码

我想显示异常信息 并且停止后面的程序继续执行 用die();结束是对的吗?


如果 catch里面继续抛出异常 程序会停止 但是是报一个错误
是不是这样写不对

        try {
            //这里是代码
        } catch (\Exception $exception) {
           throw new InvalidException($exception->getMessage());
        }
        //这后面还有很多代码
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 5

既然使用try catch了,肯定需要自己处理异常,那你后面的代码没有意义了

1年前 评论

具体问题具体分析,不能一概而论

  1. 你两个方式里第一种除非有明确必要,否则不要用
  2. 第二种比较常用
  3. 除此之外有些场景会根据异常信息直接return特定数据
1年前 评论

类似这样吧,往往自己去主动捕获了,就是希望做一些动作

try {
    //这里是代码
} catch (QueryException $e) {
    // 查询异常,返回空数据
    return [];
} catch (HttpException $e) {
    // 请求异常,尝试一次重新请求
    return $res = '重新请求';
} catch (ApiException $e) {
    // 外部API无法获取数据,改为从本地获取
    return $res = '本地获取';
} catch (\Exception $e) {
    // 意料之外的错误,无法处理,对外抛出
    Log::error($e->getMessage());
    throw $e;
}
//这后面还有很多代码
1年前 评论

echo..die() 完全没问题,这两种写法也都没问题,catch 里写代码也没啥特殊的啊,单独拿出来 echo..die 有问题吗,throw 有问题吗,没有。想让程序停止方式 die return throw都行,怎么显示异常信息和 catch 没关系了。在 catch 中可以不写任何东西,而让程序继续执行,或者干什么事情,或者继续抛出异常。其实就是不让程序抛出异常而停止运行的默认行为,自己处理异常实现逻辑上的自定义。

1年前 评论

推荐参考框架的:异常处理

使用Reportable & Renderable来上报异常和处理异常返回。

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!