[moved to Programming to get more opinions]
OK, but what is the suggested change to the system?
I proposed not appending the 13!:8 line to the user's text, leaving it
to the user to create the entire message. Is that what you have in mind?
Henry Rich
On 6/1/2016 11:29 AM, Don Guinn wrote:
Perhaps using try. and catch. misled the discussion as it was dealing with
an error in the definition. Instead consider
f=:3 : 0
if. 0=3!:0 y
do. +:y
else. 'y is not an integer'(13!:8)123
end.
)
I know, a silly example. Here f is intended to only take integer arguments.
There is no error in the definition. The error is in the statement invoking
f by trying to use it in a way not intended. Just like + reports a domain
error for a non-numeric argument, not in the definition of +, but in the
statement envoking + . I see (13!:8) as a way for users to report an error
in the way an explicit definition is being used.
On Tue, May 31, 2016 at 9:15 AM, Henry Rich <[email protected]> wrote:
[Better late than never]
13!:8 itself creates an error. Here, everything was going along great:
+y failed, but the error was caught, and it was all going to be OK until we
crashed on 13!:8. So as far as the JE is concerned, the 13!:8 line IS
where the error is. A try. in an earlier verb might trap it.
A reasonable change would be this: if error-text is given for 13!:8,
that text becomes the entire error-massage, and 13!:8 will not add the
13!:8 line too.
That would leave you responsible for seeing what line failed, which you
can do with 13!:12'' before executing 13!:8. 13!:8 isn't going to be able
to point to the failing line.
Comments, please.
Henry Rich
On 5/18/2016 12:10 PM, Don Guinn wrote:
It has always bugged me that debug signal message is not correct. Now that
the J source is open for suggestions for changes I would like to suggest a
change to the message.
Given:
f
+-+-+------------------------------------+
|3|:|try. +y |
| | |catch. 'y is not numeric.'(13!:8)123|
| | |end. |
+-+-+------------------------------------+
'First', f 'Last'
|y is not numeric.
| 'y is not numeric.' (13!:8)123
'First', + 'Last'
|domain error
| 'First', +'Last'
Notice that the second error message shows the caller's line in error, not
the line issuing the message. It would be more meaningful if the display
were:
'First', + 'Last'
|y is not numeric.
| 'First', f'Last'
Granted, if debug were on then the suspension and message should be as it
is now, but when it is off using the line from the caller makes more
sense.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm