}
IClass clas = icl.getRequiredClassInfo(m_exceptionType);
if (m_fieldName == null) {
IClassItem[] fields = clas.getFields();
for (int i = 0; i < fields.length; i++) {
IClassItem item = fields[i];
String type = item.getTypeName();
if (!Types.isSimpleValue(type)) {
IClass info = icl.getRequiredClassInfo(type);
if (info.isModifiable()) {
m_fieldName = item.getName();
m_dataType = type;
break;
}
}
}
if (m_fieldName == null) {
throw new IllegalStateException("No data object field found for exception class " + m_exceptionType);
}
} else {
IClassItem field = clas.getField(m_fieldName);
if (field == null) {
throw new IllegalStateException("Field " + m_fieldName + " not found in exception class "
+ m_exceptionType);
} else {
m_dataType = field.getTypeName();
}
}
}