【发布时间】:2017-10-17 07:06:59
【问题描述】:
众所周知,PHP 有一个名为“Exception”的类来处理非异常情况。我通常发现有人喜欢自定义一个新的异常类,它扩展了“Exception”类。这个新的异常类没有重写或添加任何功能。它只是声明了“异常”类的一个子类。 所以,我怀疑是否有必要在我的项目中自定义一个新的异常类?过去,我在任何地方都使用过“异常”类。
【问题讨论】:
众所周知,PHP 有一个名为“Exception”的类来处理非异常情况。我通常发现有人喜欢自定义一个新的异常类,它扩展了“Exception”类。这个新的异常类没有重写或添加任何功能。它只是声明了“异常”类的一个子类。 所以,我怀疑是否有必要在我的项目中自定义一个新的异常类?过去,我在任何地方都使用过“异常”类。
【问题讨论】:
这不是必须的,但可能很方便:如果你有不同种类的异常,你可以在捕获它们时进行不同的处理:
try {
...
} catch (SpecificException $e) {
// Do something specific here
} catch (SomeOtherException $e) {
// Here you can do something else
} catch (\Exception $e) {
// The rest...
}
【讨论】:
以这种方式定义异常的主要原因是为了帮助调试和错误处理。不仅像NetworkException 这样的内容提供更多信息,而且您还可以在发生该类型异常时捕获它,因此您可以以不同的方式处理不同类型的异常。例如,有些可能是暂时的,因此您可能会捕获它们并要求用户稍后再试。
【讨论】: