我有一个读取配置的类。现在的问题是我不知道如何报告这个类的错误。
使用die
是不够的,因为配置是参数化的,并且错误很常见。
由于我在Moose
BUILD
方法中调用了read函数,因此情况变得复杂。因为这种用法在使用类时显着提高了可读性,所以我想保持这种方式。
答案 0 :(得分:1)
die
有什么问题?它抛出一个异常,您可以根据需要捕获和处理它。实际上Moose本身会在验证错误上抛出异常。
答案 1 :(得分:1)
您可能希望Carp查看其croak()
功能。从其文档:
Carp例程在您自己的模块中很有用,因为它们的行为类似 die()或warn(),但有一条更有可能有用的消息 给你模块的用户。在cluck,confess和longmess的情况下 该上下文是调用堆栈中每个调用的摘要。为一个 较短的消息,您可以使用鲤鱼或呱呱声报告错误 来自你的模块被调用的地方。
与Try::Tiny一起使用,您可以获得比使用eval匹配良好的旧模具更强大,更灵活,更具描述性的解决方案。例如,您不必担心导致$ @提供错误信息的边缘情况。您的例外可以更准确地描述,也可以更详细。使用Carp,您甚至可以使您的呱呱声像忏悔,提供详细的堆栈跟踪,这样可以更容易地查看问题的确切位置。