This is kind of gross; I think it would be cleaner to have a single exception type that took the field name as a parameter.