0

我有一个复杂的 Web 应用程序,我正在向其中添加错误日志记录,我希望能够记录异常:

try{
//typically mysql queries but can involve PayPal api, Facebook api amongst others
        }
        catch($e){
            logger($e);
        }

假设 $e 始终是一个字符串是否安全,如果不是,是否有一个我可以调用的 php 函数,它总是会给我'$e'的字符串输出,以便我的记录器可以将结果输出存储在我的日志表中?

4

1 回答 1

0

这不是 c++,而是 php,这就是为什么您需要抛出异常对象或作为异常子类的对象实例的原因

来自 PHP 手册

抛出的对象必须是Exception类的实例或 Exception 的子类。试图抛出一个不是的对象将导致 PHP 致命错误。

这就是为什么您始终可以访问 Exception 类方法的原因,例如:

  • final public string getMessage ( void ) //获取异常信息
  • final public string getTraceAsString ( void ) //以字符串形式获取堆栈跟踪

这就是为什么您可以catch(Exception $e){ echo $e->getMessage();}用来获取始终为字符串的异常或跟踪消息的原因。

如果您想传递 Exception 对象,您可以扩展 Exception 类并覆盖__toString() 方法以满足您的需要。

您也可以对设置异常处理程序感兴趣

于 2013-05-28T10:05:47.510 回答