2016-04-22 61 views
1

我必须编写一个日志类来记录来自异常的数据。为了简单起见,我想知道是否可以在'trace'数组内检索数据,并通过在PHP中添加异常实例的'message'和'code'属性来扩展它。但我不确定是否所有在PHP中抛出的异常都保证至少有这三个属性('trace','message'和'code')。还建议是否有更好的方法来记录事情。是否所有的PHP异常都具有“跟踪”,“消息”和“代码”属性?

+0

'\ Exception',将至少有相同的功能。所以一般来说你应该基于\ Exception类。 http://php.net/manual/en/class.exception.php –

回答

1

首先,最好使用已经证明是好的代码。 PHP社区广泛使用Monolog库检查它。如果你仍然想写你自己的记录器,你应该坚持PSR-3 rules

回答你的问题。抛出的PHP对象必须是Exception类的一个实例或Exception的一个子类。

不过你,如果你看一个异常

public function __construct($message = null, $code = 0, Exception $previous = null); 

你可以抛出空exception.But始终存在一些代码,文件跟踪和代码的构造。代码和消息可以是空的。

由于每个用户异常扩展基类你可以阅读更多关于它的http://php.net/manual/en/language.exceptions.php

+0

我同意最好坚持已经写好的课程。但他们不符合我的要求。要么他们太大或错过我期待的重要功能。 –

+0

我认为独白符合99%的需求。我在所有项目中都使用它,并且可以高度定制,还有很多渠道,处理程序等。 – Robert

相关问题