在我看来,这个话题非常奇怪和困惑。有人可以照亮我吗?
绝对是 我不是PHP用户,但是在Actionscript,Java和Javascript中使用try /
catch后,可能会有所了解。但是请记住,不同的语言和平台会鼓励尝试/捕获的不同用法。那个…
我唯一建议使用try / catch的情况是,如果您使用的是
- 会抛出错误/异常
- 没有提供任何工具来检测您是否会做一些愚蠢的事情来导致该错误/异常。例如:在Actionscript中,关闭未打开的加载器会导致错误,但该加载器没有isOpen属性要检查,因此您不得不将其包装在try / catch中,以使本来完全没有意义的错误静音。
- 错误/异常 确实 毫无意义。
让我们以列出的示例为例,看看它们如何与该列表相符。
我读过有人说我们应该仅使用try-catch块来防止致命错误。
对于AS的loader.close()函数,这是一个很好的建议。这是一个致命的错误,而所有其他错误都是由于这种错误而造成的。另一方面,AS中几乎所有的错误都会使您的应用程序停止。然后将它们全部包装在try
/
catch中吗?绝对不!由于某种原因,“致命错误”是致命的。这意味着发生了非常严重的错误,并且应用程序在潜在的“未定义”状态下继续运行非常困难。最好知道发生了一个错误然后再解决它,而不是随它去。
我读过别人的话说,我们应该只在意外错误时使用它
更糟的是。这些通常是您不想消除的错误,因为使它们静音意味着您永远不会找到它们。也许您没有吞下它们,但是…可能正在记录它们。但是,为什么您会尝试/捕获/记录/继续,好像什么都没发生一样,从而使程序在潜在的危险和意外情况下运行?只需让错误让您大吃一惊,然后修复它即可。除了尝试调试别人编写的程序中的错误之外,没有其他比这更令人沮丧的了,因为他们将所有内容包装在try
/ catch块中,然后被忽略记录。
其他人只是说try-catch块应该在任何地方使用,因为它们也可以扩展(扩展Exception类)。
如果您是一个正在抛出的人,并且您正试图提醒自己程序中的异常情况,那么这可能有好处。但是为什么要尝试/捕获自己的抛出错误呢?让它踢您的牙齿,然后修复它,这样您就不再需要抛出错误了。
最后有人说PHP try-catch块完全没有用,因为它们实现起来很糟糕。(对此,我发现了一个关于性能的很好的SO问题)。
可能是吧。我不能回答这个。
所以…这可能是一个宗教问题,我敢肯定有人会不同意我的观点,但是从我的角度出发,这些是我多年来尝试/捕获的经验教训。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)