如何报告驼鹿构造函数的错误?
问题描述:
我有一个读取配置的类。现在的问题是我不知道如何报告这个班的错误。如何报告驼鹿构造函数的错误?
使用die
是不够的,因为配置是参数化的,并且错误是常见的。
这种情况很复杂,我调用Moose
BUILD
方法中的读函数。因为这个用法在使用类时显着提高了可读性,所以我想保持这种方式。
答
您可能想要查看Carp的croak()
函数。从它的文档:因为他们像 模具()或警告()
鲤鱼程序是在你自己的模块是有用的,但有消息这更可能是有用的 到你的模块的用户。在cluck,招供和longmess 的情况下,上下文是调用堆栈中每个调用的摘要。对于更短的消息,您可以使用鲤鱼或呱呱声来报告错误,因为 来自您的模块被调用的地方。
与Try::Tiny一起使用,您会得到一个比eval更好的,更灵活的描述性解决方案。例如,您不必担心会导致$ @提供不良信息的边缘案例。你的例外可以更准确地描述,也可以更详细。通过鲤鱼,你甚至可以让你的cro叫行为像坦白一样,提供详细的堆栈跟踪,这使得更容易确切地看到问题的起源。
我想你需要定义“错误”才能得到有用的答案。施工过程中的错误应该防止施工,因此“死亡”是合适的。在这个问题中,你认为什么非错误条件是“错误”? – darch