Not sure if returning 0 is always a good ides. 

Suppose the function evaluated results in a negative score, for example if the Modifier is ln then if some documents have 0 as field value this will be -Inf and as a result, the score will be 0 if lenient=true and therefore higher than the score of documents that have the field value between 0 and 1. 
Maybe we should at least document that "ignore" errors when lenient is set means score of 0?
Or, again, alternatively users could provide a default value for errors?