是否有必要使用sef定义的Exception

时间:2017-10-17 07:07:00

标签: php laravel

正如我们都知道的那样,PHP有一个名为" Exception"的类来处理不可接受的情况。我通常会发现有人喜欢自定义一个新的异常类来扩展类" Exception&# 34 ;.这个新的异常类不会重写或添加任何函数。它只是声明了类的一个子类" Exception"。    所以,我怀疑是否有必要在我的项目中自定义一个新的Exception类?过去,我使用了类#34; Exception"在任何地方。

2 个答案:

答案 0 :(得分:2)

没有必要,但它可能非常方便:如果你有不同类型的例外,你可以在捕获它们时以不同方式处理它们:

try {
    ...
} catch (SpecificException $e) {
    // Do something specific here
} catch (SomeOtherException $e) {
    // Here you can do something else
} catch (\Exception $e) {
    // The rest...
}

答案 1 :(得分:0)

以这种方式定义异常的主要原因是帮助调试和错误处理。类似NetworkException的内容不仅更具信息性,而且还可以在发生时捕获该类型的异常,因此您可以以不同的方式处理不同类型的异常。有些可能是暂时的,因此您可能会抓住它们并要求用户稍后再试一次。