[Progress Communities] [Progress OpenEdge ABL] Forum Post: RE: PASOE still makes mysterious distinction between RETURN ERROR CH-Error versus UNDO THRO

Status
Not open for further replies.
D

dbeavon

Guest
>>You're saying that the openclient gets back a ReturnValue even when you get error 14438. Yes. I wanted to make sure you saw that. The .Net openclient receives the ReturnValue. This is despite the noise in the agent logs (14438 messages). But remember that the error has to be thrown as an AppError class. You can see why it is a bit obnoxious that all of our external entry-point procedures need to have the CATCH AppError block that does nothing more than translate to a corresponding RETURN ERROR. Even without the redundant CATCH, I would be getting the same behavior ... aside from the agent log message (14438). So it's somewhat mysterious after all? When I first reported the difference (between errors is raised via THROW'ing AppError or "RETURN ERROR") a Progress KB was created. That was back in 2014. Progress KB - Error trying to pass an Error Object back to a client across the AppServer Boundary In summary, the error message is available to the .Net openclient (in the ReturnValue) if the error was either sent by THROW'ing an AppError, OR it was sent back via RETURN ERROR.. The openclient is able to take full ownership of error-handling because all the necessary information (a character string) is sent over the proxy. Based on my testing, the only drawback of THROW'ing an AppError is additional the noise in the agent log (ie. 14438 messages). As I said these business-logic failures happen as a matter of course (eg for regular data entry issues or validation). They should not cause so much noise in the agent logs, if that can be avoided. But for other types of errors (ones that are not based on AppError), there is no way for the openclient to get the related information. So those are the ones that still warrant a 14438 message (along with additional details about the message which are currently missing ). >> ... you catch them and turn it into a RETURN ERROR yourself. So you are never attempting to throw one back to the client. Yes we do this and it is very repetitive. The only purpose seems to be in order to avoid the 14438 messages in the agent logs.

Continue reading...
 
Status
Not open for further replies.
Top