Perl中面向对象的异常处理值得吗?

时间:2009-02-02 13:22:00

标签: perl exception exception-handling

我最近阅读了"Object Oriented Exception Handling in Perl" Perl.com文章。在Perl中使用异常是否有意义?

4 个答案:

答案 0 :(得分:18)

我应该注意你引用的文章是旧的,现在你应该使用Exception::Class而不是Error.pm,这是古怪的并且往往会破坏(这就是我称之为“黑魔法”)。我应该注意到我现在是Error.pm维护者,但我不再推荐它或者将它用于我自己的代码。

答案 1 :(得分:12)

  

“在Perl中使用异常是否有意义?”

是的,我强烈建议您通过Perl Best Practices阅读Damian Conway中的“错误处理”一章。

它确实让我眼前一亮; - )

答案 2 :(得分:7)

绝对。如果你抛出一个简单的“骰子”,你真的没有计算机可以处理的更多信息。例如,我有一个使用Test :: Most的测试框架,该模块可以让您在测试失败时死亡。但是,我的框架需要知道我是否因为测试失败或代码死亡而死亡。因此,我抛出了一个Test :: Most :: Exception,我的框架可以检查异常类型并采取适当的行动。

例外是你的朋友:)

答案 3 :(得分:3)

在任何编程语言中,异常都允许您以不同的方式处理不同类型的错误。这对于跟踪测试中的细粒度错误以及智能地处理程序中的可恢复错误非常有用。对于你写的每一个一次性程序来说都是不值得的,但是对于你花费大量时间开发它的东西来说,这是值得的。