2009-07-01 50 views
0

我有一个运行数据库查询的PHP脚本。现在,如果查询失败,我应该触发一个错误还是抛出异常?我注意到如果我执行后者,脚本执行将在面对异常后停止。我想在这个PHP脚本中引发异常或错误吗?

我的代码如下:

if (!$this->connection[0]->query($this->query)) 
    throw new Exception($this->connection[0]->error); 

什么是使用例外这种情况下(失败的查询)的利弊?

回答

2

取决于您的一般错误处理策略和传递给此函数的查询。抛出异常本身是一个非常好的主意,恕我直言,如果他们被捕获的地方和处理。

1

我认为这取决于情况有多糟糕,如果查询失败。如果查询执行正确至关重要,那么肯定会有例外。

无论您决定如何,请确保您正常处理错误/异常。 (try..catch等)。

你也应该看看this stackoverflow question

0

如果这是一个外部网站,我倾向于在开发阶段详细处理错误。一旦网站准备就绪后,我尽量不要向最终用户提供有关错误的太多细节,特别是出于安全原因的数据库细节。

这不是一些石头答案,但在报告和处理外部网站上的错误时要记住安全。请注意,因为这可能不是外部网站。

3

这种情况下使用异常(失败的查询)有什么优点和缺点?

简单:

  • 优点:您的应用程序可以优雅地处理故障查询,记录它如果需要的话,然后继续前进。
  • 缺点:表现。

这么说,我觉得你可以把重点放在错误的问题。 应该处理异常,只要他们可能发生,但他们应该发生非常非常罕见。如果你的查询有没有一个合理的机会,然后查询本身应该是你的重点,而不是任何的错误处理机制。

我的意思是提高任何输入查询的验证可能导致其窒息,而不是速度的查询,以抵消任何性能的手段,打,由于错误处理。换句话说,找出将使你的查询失败,并确保这样的状态没有达到。想想这个比喻:如果你正在一艘潜在的泄漏船上前往湖中(你的问题),你应该不用担心穿着潜水服(错误处理),因为你应该确保船是水密的。

相关问题