Books by Bryan Meyers

Programming in RPG IV

Control Language Programming for IBM i

RPG IV Jump Start

Power Tips for RPG IV

VisualAge for RPG by Example

 
Receiver Too Small to Hold Result Print E-mail

Q. I have programs that sometimes force a field defined larger than the result field. Of course I get the RNQ0103 message ("Target for a numeric operation is too small to hold result"). Is there a work-around or am I forced to end-free and do this operation and return to free?

A. This problem will occur with the EVAL operation, regardless of whether or not you are using free format RPG.

You could use the Monitor operation to watch for this error, which RPG can catch as a status code of 103:

D Tgttoosmall     C                   103
D Result          S             11  2
D Source          S             15  2
 /Free
  Monitor;
    Result = Source;
    On-error Tgttoosmall;
      ...
      // Process exception here
      ...
  Endmon;
 /End-free

In this example, if the value of Source is too large to fit into Result, the On-error statement will catch the error. I've used a named constant to hold the relevant status code, 103. Following the On-error statement, you can include whatever code you want to handle the exception.