我有一个复杂的网络应用程序,我正在添加错误记录,我希望能够记录异常:
try{
//typically mysql queries but can involve PayPal api, Facebook api amongst others
}
catch($e){
logger($e);
}
假设$ e永远是一个字符串是否安全,如果没有,我可以调用一个php函数,它总是会给我'$ e'的字符串输出,这样我的记录器就可以存储结果输出了我的日志表?
答案 0 :(得分:0)
这不是c ++,这就是为什么你需要抛出异常对象或异常的子类
的对象实例的原因来自PHP手册
抛出的对象必须是Exception类的实例或Exception的子类。尝试抛出一个不会导致PHP致命错误的对象。
这就是为什么你总是可以访问Exception类方法,例如:
这就是为什么你可以使用catch(Exception $e){ echo $e->getMessage();}
获取异常或跟踪的消息,这些消息总是字符串。
如果要传递Exception对象,可以扩展Exception类并覆盖 __toString() 方法以满足您的需求。
感兴趣