Don't know if Martin uses this style of including the name of the Exception (it is redundant, the class is shown anyway, and this type of error does not seem the be something you would rescue), so perhaps have a message that says "build_from_value() requires class with single attribute. Class #{classname} has the attributes #{attributes....}"... or something like that.

I am not so hung up on the name of the exception class, but I did not get what you were trying to do first.