【发布时间】:2018-08-10 07:02:14
【问题描述】:
我只是在写一个异常,它应该存储一个Class 对象作为错误消息过程的字段。
class BadType < Exception
getter should_be : Class
getter actual : Class
end
def feed(pet : Animal, food : Food)
raise BadType.new should_be: Cat, actual: pet.class if food == "fish" && !pet.is_a?(Cat)
end
但是,Class 是抽象的,因此不能在这里用作字段类型。
那么,在我的情况下如何解决这个问题?我没有找到Class 的任何派生类,这是否意味着永远不能将Class 对象存储为字段?但在这里我的问题是有意义的用法(任何类型检查取决于输入可能需要这个BadType)。
不知道是不是错过了什么,所以先来了。
【问题讨论】:
标签: crystal-lang