+ Start a Discussion

Determining if a field is in error using reflection on an sObject

I've seen in the doc that it is possible to add an error to a specific sObject field using dot notation. Ie 


Account myAccount  = [select an account];

myAccount.phone.addError("Invalid phone number");


It also appears to be possible to get a field's value by passing the field name as a string. 


In both cases you need to know the specific sObject and field name ahead of time. What I would like to do is write a generic method that iterates over the list of fields associated with any sObject, checking to see if a field is in error.


In pseudo code this would look something like this:


public Boolean recordHasFieldsInError(sObject s) {

Boolean inError = false;

List<Field> fields = sObject.getFields();

for(Field f: fields) {

if(f.hasError()) {

inError = true;




return inError;



Is there a way to do this in Apex without knowing the sObject type or the names of the fields ahead of time?