In current org.apache.sis.filter implementation, failure to evaluate an expression are caught and logged, then null is returned. For example if the evaluation of A+B fail with an integer overflow, the ArithmeticException is caught and null is returned. We should probably revisit this policy, maybe by letting the exception propagate.
Expressions and filters are often used for building subsets of FeatureSet. In such case, null values returned from Expression become missing properties in the new Feature instances. We could store the reason for nil values in an characteristic of the missing property. The characteristic name would be a "standard" (for SIS code base) name declared in AttributeConvention.
The caught exceptions can be located by searching usages of Node.warning(Exception) method.