我什么时候写自己的异常类?

时间:2011-07-08 07:50:39

标签: php oop exception

我一直在想,因为当我需要编写我自己的异常类扩展时,我进入了OOP的阴暗水域并写了几个分布式库。

到目前为止,我只是使用内置的异常类,它似乎很适合我。是否有必要,如果可以的话,我可以编写一个异常子类。

4 个答案:

答案 0 :(得分:42)

答案 1 :(得分:2)

只在需要时写下,例如发出自己的异常信号,例如,如果您编写一个库,并且现有的异常没有例外。

  1. Core PHP Exceptions
  2. Core PHP SPL Exceptions
  3. PHP中已经存在许多异常,因此对于正常的程序流程,事情应该是异常的。

    如果你正在开发一个更复杂的系统,比如解析器,lexer plus编译器,并且所有内容都是通过一个例程/面向它的API来访问的,解析器可能想要抛出一个解析器异常,lexer是一个lexer异常,编译编译器异常。

    能够区分是有用的。但是我通常坚持使用异常构建,如果需要更多的区分,以后很容易重构。

    由于现在有命名空间,如果你从一开始就坚持使用第一手的Exception类,这真的很容易;)

答案 2 :(得分:2)

内置异常几乎适用于所有情况。我可以想到你需要另一个的唯一场景是当try中有多个异常可以抛出并且你想根据哪一个做不同的事情时被扔了。你必须区分两个例外。因此你需要另一个。

答案 3 :(得分:1)

IMHO: 只需输入您自己的域名即可。 当您需要在异常中提供其他数据时,通常会指示这一点。 所以实际上你还必须拥有自己的类来添加额外的类成员。