如何报告Moose构造函数的错误?

时间:2011-08-10 14:41:29

标签: perl error-handling moose

我有一个读取配置的类。现在的问题是我不知道如何报告这个类的错误。

使用die是不够的,因为配置是参数化的,并且错误很常见。

由于我在Moose BUILD方法中调用了read函数,因此情况变得复杂。因为这种用法在使用类时显着提高了可读性,所以我想保持这种方式。

2 个答案:

答案 0 :(得分:1)

die有什么问题?它抛出一个异常,您可以根据需要捕获和处理它。实际上Moose本身会在验证错误上抛出异常。

答案 1 :(得分:1)

您可能希望Carp查看其croak()功能。从其文档:

  

Carp例程在您自己的模块中很有用,因为它们的行为类似   die()或warn(),但有一条更有可能有用的消息   给你模块的用户。在cluck,confess和longmess的情况下   该上下文是调用堆栈中每个调用的摘要。为一个   较短的消息,您可以使用鲤鱼或呱呱声报告错误   来自你的模块被调用的地方。

Try::Tiny一起使用,您可以获得比使用eval匹配良好的旧模具更强大,更灵活,更具描述性的解决方案。例如,您不必担心导致$ @提供错误信息的边缘情况。您的例外可以更准确地描述,也可以更详细。使用Carp,您甚至可以使您的呱呱声像忏悔,提供详细的堆栈跟踪,这样可以更容易地查看问题的确切位置。