Connection Information

To perform the requested action, WordPress needs to access your web server. Please enter your FTP credentials to proceed. If you do not remember your credentials, you should contact your web host.

Connection Type

Errors when calling functions and events dynamically – PB Docs 2019 – PowerBuilder Library

Errors when calling functions and events dynamically – PB Docs 2019

Errors when calling functions and events dynamically

If you call a function or event dynamically, different
conditions create different results, from no effect to an execution
error. The tables in this section illustrate this.

Functions

The rules for functions are similar to those for events, except
functions must exist: if a function is not found, an error always
occurs. Although events can exist without a script, if a function is
defined it has to have code. Consider the following statements:

  1. This statement calls a function without looking for a return
    value:

  2. This statement looks for an integer return value:

  3. This statement looks for an Any return value:

    The following table uses these statements as
    examples.

    Condition 1

    Condition 2

    Result

    Example

    The function does not exist.

    None.

    Execution error 65: Dynamic function not
    found.

    All the statements cause error
    65.

    The function is found and executed but is not
    defined with a return value.

    The code is looking for a return
    value.

    Execution error 63: Function/event with no
    return value used in expression.

    Statements 2 and 3 cause error
    63.

Events

Consider these statements:

  1. This statement calls an event without looking for a return
    value:

  2. This example looks for an integer return value:

  3. This example looks for an Any return value:

The following table uses these statements as examples.

Condition 1

Condition 2

Result

Example

The event does not exist.

The code is not looking for a return
value.

Nothing; the call fails silently.

Statement 1 fails but does not cause an
error.

 

The code is looking for a return
value.

A null of the Any datatype is
returned.

La_any is set to null in statement
3.

 

 

If the expected datatype is not Any, execution
error 19 occurs: Cannot convert Any in Any variable to
datatype.

The assignment to li_int causes execution error
19 in statement 2.

The event is found but is not implemented (there
is no script).

The event has a defined return
value.

A null of the defined datatype is
returned.

If eventname is defined to return integer,
li_int is set to null in statement 2.

 

The event does not have a defined return
value.

A null of the Any datatype is
returned.

La_any is set to null in statement
3.

 

 

If the expected datatype is not Any, execution
error 19 occurs: Cannot convert Any in Any variable to
datatype.

The assignment to li_int causes execution error
19 in statement 2.

The event is found and executed but is not
defined with a return value.

The code is looking for a return
value.

Execution error 63: Function/event with no return
value used in expression.

Statements 2 and 3 cause error 63.

When an error occurs

You can surround a dynamic function call in a try-catch block to
prevent the application from terminating when an execution error
occurs. Although you can also handle the error in the SystemError
event, you should not allow the application to continue once the
SystemError event is invoked — the SystemError event should only
clean up and halt the application.

For information on using try-catch blocks, see the section called “Exception handling in
PowerBuilder”
in Application Techniques.

If the arguments do not
match

Function arguments are part of the function’s definition.
Therefore, if the arguments do not match (a compatible match, not an
exact match), it is essentially a different function. The result is
the same as if the function did not exist.

If you call an event dynamically and the arguments do not match,
the call fails and control returns to the calling script. There is no
error.

Error-proofing your code

Calling functions and events dynamically opens up your
application to potential errors. The surest way to avoid these errors
is to always make static calls to functions and events. When that is
not possible, your design and testing can ensure that there is always
an appropriate function or event with the correct return
datatype.

One type of error you can check for and avoid is data conversion
errors.

The preceding tables illustrated that a function or event can
return a null value either as an Any variable or as a variable of the
expected datatype when a function or event definition exists but is
not implemented.

If you always assign return values to Any variables for dynamic
calls, you can test for null (which indicates failure) before using
the value in code.

This example illustrates the technique of checking for
null before using the return value.


Document get from Powerbuilder help
Thank you for watching.
Was this article helpful?
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x