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

Handling errors at runtime – PB Docs 125 – PowerBuilder Library

Handling errors at runtime – PB Docs 125

Handling errors at runtime

A serious error at runtime (such as attempting to access a
window that has not been opened) will trigger the SystemError event
in the Application object if you have not added exception handling
code to take care of the error.

If there is no SystemError script

If you do not write a SystemError script to handle these errors,
PowerBuilder displays a message box containing the following information:

  • The number and text of the
    error message

  • The line number, event, and object in which the
    error occurred

There is also an OK button that closes the message box and
stops the application.

If there is a SystemError script

If there is a script for the SystemError event, PowerBuilder
executes the script and does not display the message box. Whether
or not you have added TRY/CATCH blocks
to your code to trap errors, it is a good idea to build an application-level
script for the SystemError event to trap and process any runtime
errors that have not been handled, as described in “Using the Error
object”
.

For more information about handling exceptions, see Application
Techniques
.

Using the Error
object

In the script for the SystemError event, you can access the
built-in Error object to determine which error occurred and where
it occurred. The Error object contains the properties shown in Table 32-3.

Table 32-3: Properties of the Error object

Property

Data type

Description

Number

Integer

Identifies the PowerBuilder error.

Text

String

Contains the text of the error message.

WindowMenu

String

Contains the name of the window or menu
in which the error occurred.

Object

String

Contains the name of the object in which
the error occurred. If the error occurred in a window or menu, the
Object property will be the same as the WindowMenu property

ObjectEvent

String

Contains the event for which the error
occurred.

Line

Integer

Identifies the line in the script at
which the error occurred.

note.png Defining your own Error object

You can customize your own version of the Error object by
defining a class user object inherited from the built-in Error object.
You can add properties and define object-level functions for your
Error object to allow for additional processing. In the Application
painter, you can then specify that you want to use your user object
inherited from Error as the global Error object in your application.
For more information, see “Building a standard
class user object”
.

Runtime error numbers

Table 32-4 lists
the runtime error numbers returned in the Number property of the
Error object and the meaning of each number:

Table 32-4: PowerBuilder runtime errors

Number

Meaning

1

Divide by zero.

2

Null object reference.

3

Array boundary exceeded.

4

Enumerated value is out of range for
function.

5

Negative value encountered in function.

6

Invalid DataWindow row/column
specified.

7

Unresolvable external when linking reference.

8

Reference of array with null subscript.

9

DLL function not found in current application.

10

Unsupported argument type in DLL function.

11

Object file is out of date and must be
converted to current version.

12

DataWindow column type does not match
GetItem type.

13

Unresolved property reference.

14

Error opening DLL library for external
function.

15

Error calling external function name.

16

Maximum string size exceeded.

17

DataWindow referenced in DataWindow object
does not exist.

18

Function does not return value.

19

Cannot convert name in
Any variable to name.

20

Database command not successfully prepared.

21

Bad runtime function reference.

22

Unknown object type.

23

Cannot assign object of type name to
variable of type name.

24

Function call does not match its definition.

25

Double or Real expression has overflowed.

26

Field name assignment
not supported.

27

Cannot take a negative to a noninteger
power.

28

VBX Error: name.

29

Nonarray expected in ANY variable.

30

External object does not support data
type name.

31

External object data type name not
supported.

32

Name not found calling external object
function name.

33

Invalid parameter type calling external
object function name.

34

Incorrect number of parameters calling
external object function name.

35

Error calling external object function name.

36

Name not found accessing external object
property name.

37

Type mismatch accessing external object
property name.

38

Incorrect number of subscripts accessing
external object property name.

39

Error accessing external object property name.

40

Mismatched ANY datatypes in expression.

41

Illegal ANY data type in expression.

42

Specified argument type differs from
required argument type at runtime in DLL function name.

43

Parent object does not exist.

44

Function has conflicting argument or
return type in ancestor.

45

Internal table overflow; maximum number
of objects exceeded.

46

Null object reference cannot be assigned
or passed to a variable of this type.

47

Array expected in ANY variable.

48

Size mismatch in array-to-object conversion.

49

Type mismatch in array-to-object conversion.

50

Distributed Service Error: name.

51

Bad argument list for function/event: name.

52

Distributed Communications Error: name.

53

The server name could
not be located. It was probably not started.

54

The server name is
rejecting new messages. It is in the process of shutting down.

55

The request caused an abnormal termination.
The connection has been closed.

56

A message was not fully transmitted.

57

This connection object is not connected
to a server.

58

Object instance does not exist.

59

Invalid column range.

60

Invalid row range.

61

Invalid conversion of number dimensional
array to object.

62

The server name is
busy and not accepting new connections.

63

Function/event with no return
value used in expression.

64

Object array expected on left side of
assignment.

65

Dynamic function not found. Possible
causes include: pass by value/reference mismatch.

66

Invalid subscript for array index operation.

67

Null object reference cannot be assigned
or passed to an autoinstantiate.

68

Null object reference cannot be passed
to external DLL function name.

69

Function name cannot
be called from a secured runtime session.

70

External DLL function name cannot
be called from a secured runtime session.

71

General protection fault occurred.

72

name failed with
an operating system error code of number.

73

Reference parameters cannot be passed
to an asynchronous shared/remote object method.

74

Reference parameters cannot be passed
to a shared object method.

75

The server has forced the client to disconnect.

76

Passing null as a parameter to external
function name.

77

Object passed to shared/remote
object method is not a nonvisual user object.

78

Listening works only in the Enterprise
version of PowerBuilder.

79

The argument to name must
be an array.

80

The server has timed out the client connection.

81

Function argument file creator must be
a four-character string.

82

Function argument file type must be a
four-character string.

83

Attempt to invoke a function or event
that is not accessible.

84

Wrong number of arguments passed to function/event
call.

85

Error in reference argument passed in
function/event call.

86

Ambiguous function/event reference.

87

The connection to the server has been
lost.

88

Cannot ask for ClassDefinition Information
on open painter: name.

89

5.0 style proxy objects are not supported.
Copy the new style proxy that was generated at migration time.

90

Cannot assign array of type name to
variable of type array of name.

91

Cannot convert name in
Any variable to name. Possible cause: uninitialized
value.

92

Required property name is
missing.

93

CORBA User Exception: exceptionname.

94

CORBA System Exception: exceptionname.

95

CORBA Objects cannot be created locally.

96

Exception Thrown has not been handled.

97

Cannot save name because
of a circular reference problem. Possible causes:

  1. This object references another class, which in turn
    references this object.

  2. Some other circular reference is pointing back to
    this object, causing a deadlock condition.

Suggested actions:

  1. Temporarily
    remove the circular reference from the referenced object.

  2. Make your required changes to this object to refer
    to that object.

  3. Add back the circular reference you removed in step
    1.

  4. Perform a full rebuild (recommended).

98

Obsolete object reference.

99

Error calling method of a PBNI object.

100

Error loading library containing a PBNI
object.

101

Error unloading library containing a
PBNI object.

102

Error creating a PBNI object.

103

Error destroying a PBNI object.

104

Error calling PowerBuilder system function functionname.

105

Executing a HALT statement in a server
component is strictly forbidden.

106

Function is reserved or not yet implemented.

107

Argument is out of range.

108

Not enough memory to execute the operation.

109

Cannot assign a null value to array variables.

Some errors terminate the application immediately. They do
not trigger the SystemError event.

SystemError event scripts

A typical script for the SystemError event includes a CHOOSE
CASE
control structure to handle specific errors. To stop
the application, include a HALT statement in
the SystemError script.

note.png Caution

You can continue your application after a SystemError event,
but doing so can cause unpredictable and undesirable effects. Where
the application will resume depends on what caused the error. Typically,
you are better off reporting the problem to the user, then stopping
the application with HALT.

proc.png To test the SystemError event script:

  1. Assign values to the properties of the
    Error object with the PopulateError function.

  2. Call the SignalError function
    to trigger the SystemError event.

    The script for the SystemError event executes.


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