我有一个复杂的web应用程序,我正在添加错误日志记录,我希望能够记录异常:
try{
//typically mysql queries but can involve PayPal api, Facebook api amongst others
}
catch($e){
logger($e);
}
假设$e将始终是一个字符串是否安全,如果不是,是否有一个php函数我可以调用它将始终给我'$e'的字符串输出,以便我的日志记录器可以将结果输出存储在我的日志表中?
这不是c++,这是php这就是为什么你需要抛出异常对象或对象的实例,该对象是异常
的子类From PHP manual
被抛出的对象必须是Exception类的实例或Exception的子类。尝试抛出一个不属于PHP的对象将导致PHP致命错误。
所以这就是为什么你总是可以访问Exception类方法,例如:
- final public string getMessage (void)//获取异常消息
- final public string getTraceAsString (void)//获取堆栈跟踪作为字符串
这就是为什么你可以使用catch(Exception $e){ echo $e->getMessage();}
来获取异常或跟踪消息,这些消息总是字符串。
如果你想传递Exception对象,你可以扩展Exception类并覆盖__toString()方法来满足你的需要。
您也可以对设置异常处理程序