抑制预期 Oracle 异常的 PHP 警告

Posted

技术标签:

【中文标题】抑制预期 Oracle 异常的 PHP 警告【英文标题】:Suppress PHP warnings for expected Oracle exceptions 【发布时间】:2011-09-06 15:24:38 【问题描述】:

我有一个 php 函数,它调用一个 PL/SQL 包,该包可以抛出一些我可以在 PHP 中捕获并采取行动的已知异常(即用户异常)。问题是,尽管在 PHP 中捕获了异常,但我在 PHP 日志文件中收到警告,其中包含来自 PL/SQL 异常的堆栈跟踪:

PHP Warning:  oci_execute(): ORA-20001: Something isn't valid
ORA-234565: at "MY.PACKAGE", line 234
ORA-923485: at "MY.PACKAGE", line 123

如何抑制这些 OCI 警告?我不想禁止所有警告,因为它们可能有助于解决其他问题,但是当它是我的 PL/SQL 的预期错误时,我不希望它填满我的日志文件。

【问题讨论】:

【参考方案1】:

如果您只需要抑制 oci_execute() 上的警告,请在其前面加上 @

@oci_execute()

通常不建议使用这种运行时错误抑制,因为它掩盖了应用程序中的问题,但您已经通过捕获异常处理了代码中的问题并了解了抑制警告的后果。

PHP docs on the @ operator...

【讨论】:

不错!谢谢。在使用 XMLDocument 时,使用 @ 来抑制有关 XML 的警告 - 没想到会为此使用它。

以上是关于抑制预期 Oracle 异常的 PHP 警告的主要内容,如果未能解决你的问题,请参考以下文章

如何抑制可能的空引用警告

PHP error_reporting 抑制通知和警告

构造新异常时抑制 CA1303 fxcop 警告

在终端中使用 mysql 来抑制警告消息,但密码是用 bash 脚本编写的

如何抑制 StyleCop 警告?

抑制 PDO 警告