Consultor Eletrônico



Kbase P153674: PROCESS EVENTS error 2780 is not caught by catch block
Autor   Progress Software Corporation - Progress
Acesso   Público
Publicação   10/1/2009
Status: Unverified

SYMPTOM(s):

PROCESS EVENTS error 2780 is not caught by catch block

Input blocking statement is invalid while executing a user-defined function or method: '<function>'. (2780)

The following code returns error 2780:

---start---
FUNCTION processEvents RETURNS LOGICAL ():
PROCESS EVENTS.
RETURN TRUE.
CATCH e AS Progress.Lang.Error :
MESSAGE "Error caught in function" VIEW-AS ALERT-BOX.
END CATCH.
END.
processEvents().
---end---

FACT(s) (Environment):

All Supported Operating Systems
OpenEdge 10.2A

CAUSE:

The error condition is not in force when an i/o blocking statement is encountered during the execution of a user-defined function.

FIX:

As a workaround, take the CATCH outside the functuion:

---start---
FUNCTION processEvents RETURNS LOGICAL ():
PROCESS EVENTS.
RETURN TRUE.
CATCH e AS Progress.Lang.Error :
MESSAGE "Error caught in function" VIEW-AS ALERT-BOX.
END CATCH.
END.

processEvents().

CATCH e AS Progress.Lang.Error :
MESSAGE "Error caught in main block" VIEW-AS ALERT-BOX.
END CATCH.
---end---