Perl - Moose :: Error ::最新的Moose版本缺少默认值

时间:2015-09-23 12:12:19

标签: perl moose

我有一些使用Moose的Perl代码,它使用自定义错误类。 像这样:

use metaclass (
    metaclass   => 'Moose::Meta::Class',
    error_class => 'My::Custom::Class',
);

My::Custom::Class来自Moose::Error::Default。 这曾经与Moose 2.0401一起使用。我最近将Moose升级到最新的2.1603版本,它不再起作用了。 原因似乎是整个Moose::Error::*树已经消失了。 我确实看过Moose更改日志,但我找不到它为什么被删除,也不知道我应该如何在缺少这些软件包的情况下更新我的代码。

2 个答案:

答案 0 :(得分:5)

模块在2.1101中消失了。相关的Changes条目说明:

  

2.1101 2013-10-20(试用版)

     

[ENHANCEMENTS]

     
      
  • Moose字符串异常已被Moose :: Exception对象取代。看到   Moose ::手册:: Delta详情。
  •   

答案 1 :(得分:2)

Moose::Error从来就不是公共API,也不适合在Moose之外的代码中使用。对于您自己的代码,您应该使用类似Throwable角色的内容。如果要添加更多结构或创建异常类的层次结构,可以使用普通的Moose方式执行 - 在异常基类中使用haswith Throwable}和/或创建一堆子类。