处理正确方法的异常

时间:2016-01-05 20:39:06

标签: php exception-handling

我有一个相当简单的问题,我刚刚阅读了有关PHP中的错误和异常处理的文章,但我仍然有一些问题未被发现。

1)以哪种方式制作自定义异常类(扩展PHP的默认异常)?在哪些情况下我应该制作自定义例外?

2)我读到必须使用catch / try块捕获异常,但我经常看到没有任何try / catch块的代码中抛出的异常。他们使用set_exception_handler()功能吗?我应该如何正确使用此功能?

3)要在抛出异常时允许自定义行为(例如,记录数据库中的所有异常),我应该使用set_exception_handler()还是别的?

感谢您抽出宝贵时间阅读我的问题并度过愉快的一天!

1 个答案:

答案 0 :(得分:1)

  1. 如果您需要的异常不仅仅是内置异常,那么扩展它们就是最佳选择。没有比这更多的东西了。

  2. 他们不得被抓住。它们应该在某些时候被捕获(参见3.)但是如果你正在编写某种类型的库或模块,那么你可以抛出异常并将其留给该代码的用户来捕获它

  3. 您可以将整个应用程序包装在try-catch块中,然后在那里捕获任何异常,然后执行您需要执行的操作(例如将它们保存到日志文件或数据库中物质)。

  4. 我个人会避免使用set_exception_handler(在我看来,使用3.会更好),但在某些情况下,它可能是一个好的,甚至是唯一的解决方案。