Many parts of the internal protocol code such as RTalk and RConnection catch low-level exceptions and return null making lower-level error handling on the Java side hard (see also comments in #175). Way back the first client used null to signal errors, but then a general REngine client was created which introduced exceptions. However, the low-level Rserve code has not adopted it yet and it still catching them instead of creating the corresponding exceptions.
Many parts of the internal protocol code such as
RTalk
andRConnection
catch low-level exceptions and returnnull
making lower-level error handling on the Java side hard (see also comments in #175). Way back the first client usednull
to signal errors, but then a generalREngine
client was created which introduced exceptions. However, the low-level Rserve code has not adopted it yet and it still catching them instead of creating the corresponding exceptions.