Exception handling is of uttermost importance. There are several situations where exceptions are raised due to the data and not to programming errors. These should be dealt with so that execution is not halted. Instead, NULL/None values should result from the evaluation (e.g. NULL/None values, JSON field missing, casting empty strings to numeric). Optionally, warnings should be sent to stderr. This issue should cover, at least the following exceptions, always returning None:
[ ] Operations with None values (e.g. None + 1)
[ ] Accessing methods/properties of None objects (e.g. None.get(...))
[ ] Retrieving inexistent keys from dictionaries (e.g. json['missing key'])
Note: in the future, a coalesce function should be available that is able to handle these exceptions and replacing None by a value/expression. (look into #3)
Exception handling is of uttermost importance. There are several situations where exceptions are raised due to the data and not to programming errors. These should be dealt with so that execution is not halted. Instead, NULL/None values should result from the evaluation (e.g. NULL/None values, JSON field missing, casting empty strings to numeric). Optionally, warnings should be sent to stderr. This issue should cover, at least the following exceptions, always returning
None
:None + 1
)None.get(...)
)json['missing key']
)Note: in the future, a
coalesce
function should be available that is able to handle these exceptions and replacingNone
by a value/expression. (look into #3)