JsonCircularReference class: Difference between revisions

From m204wiki
Jump to navigation Jump to search
No edit summary
m (misc cleanup)
Line 1: Line 1:
<!-- JsonCircularReference class -->
<!-- JsonCircularReference class -->
__NOTOC__
__NOTOC__
JsonCircularReference [[Exceptions|exceptions]] are thrown by the Stringify function in the Json class if the Json object leads to a [[Json class#Circular references|circular reference]].   
<var>JsonCircularReference</var> [[Exceptions|exceptions]] are thrown by the <var>[[Stringify (Json function)|Stringify]]</var> function in the <var>[[Json class|Json]]</var> class if the <var>Json</var> object leads to a [[Json class#Circular references|circular reference]].   


To produce a <var>JsonCircularReference</var> exception for yourself, you typically use a <var class="product">SOUL</var> <var>[[Exceptions#Throwing exceptions|Throw]]</var> statement with a <var>JsonCircularReference</var> <var>[[#New constructor|New]]</var> constructor.  This statement must be issued from within a method, and it can only be caught by the code that calls the method.  For example, the following statement throws a <var>JsonCircularReference</var> exception:
To produce a <var>JsonCircularReference</var> exception for yourself, you typically use a <var class="product">SOUL</var> <var>[[Exceptions#Throwing exceptions|Throw]]</var> statement with a <var>JsonCircularReference</var> <var>[[#New constructor|New]]</var> constructor.  This statement must be issued from within a method, and it can only be caught by the code that calls the method.  For example, the following statement throws a <var>JsonCircularReference</var> exception:
Line 7: Line 7:
</p>
</p>
   
   
Remember that you catch an exception with the <var>[[Exceptions#Try and Catch|Catch]]</var> statement; if an exception condition occurs outside a <var>Catch</var> for it, the request is canceled.
Remember that you catch an exception with the <var>[[Exceptions#Try and Catch|Catch]]</var> statement. If an exception condition occurs outside a <var>Catch</var> for it, the request is canceled.
   
   
The <var>JsonCircularReference</var> class, like the Json class, is available as of <var class="product">Model 204</var> 7.6.
The <var>JsonCircularReference</var> class, like the <var>Json</var> class, is available as of <var class="product">Model 204</var> 7.6.


==The JsonCircularReference methods==
==The JsonCircularReference methods==
Line 29: Line 29:


====Syntax terms====
====Syntax terms====
<table class="syntaxTable">
<table>
 
<tr><th>%JsonCircularReference </th>
<tr><th>%JsonCircularReference </th>
<td>A reference to an instance of a <var>JsonCircularReference</var> object.
<td>A reference to an instance of a <var>JsonCircularReference</var> object.
</td></tr>
</td></tr>


<tr><th><var>[%(JsonCircularReference):]</var></th><td>The class name in parentheses denotes a <var>[[Notation conventions for methods#Constructors|Constructor]]</var>.</td></tr>
<tr><th><var>[%(JsonCircularReference):]</var></th>
<td>The class name in parentheses denotes a <var>[[Notation conventions for methods#Constructors|Constructor]]</var>.</td></tr>
</table>
</table>


===Usage notes===
===Usage notes===
<p>The following example catches a circular reference exception and prints the string where the circular reference occurs.
<p>
The following example catches a circular reference exception and prints the string where the circular reference occurs.
</p>
</p>
<p class="code">b                                                       
<p class="code">b                                                       
Line 64: Line 65:


Running this example results in:
Running this example results in:
<p class="code">Caught Json Circular Reference Error   
<p class="output">Caught Json Circular Reference Error   
["a",["b",["c",[Circular]]]]
["a",["b",["c",[Circular]]]]
</p>           
</p>  
          
[[Category:System exception classes]]
[[Category:System exception classes]]

Revision as of 18:51, 11 May 2015


JsonCircularReference exceptions are thrown by the Stringify function in the Json class if the Json object leads to a circular reference.

To produce a JsonCircularReference exception for yourself, you typically use a SOUL Throw statement with a JsonCircularReference New constructor. This statement must be issued from within a method, and it can only be caught by the code that calls the method. For example, the following statement throws a JsonCircularReference exception:

throw %(JsonCircularReference):new

Remember that you catch an exception with the Catch statement. If an exception condition occurs outside a Catch for it, the request is canceled.

The JsonCircularReference class, like the Json class, is available as of Model 204 7.6.

The JsonCircularReference methods

The following are the available JsonCircularReference class methods.

MethodDescription
NewCreate a new JsonCircularReference object

The methods in the class are described in the subsections that follow. In addition:

New constructor

Create a new JsonCircularReference object (JsonCircularReference class)

This Constructor generates an instance of a JsonCircularReference exception. The New method format is as follows:

Syntax

%jsonCircularReference = [%(JsonCircularReference):]New

Syntax terms

%JsonCircularReference A reference to an instance of a JsonCircularReference object.
[%(JsonCircularReference):] The class name in parentheses denotes a Constructor.

Usage notes

The following example catches a circular reference exception and prints the string where the circular reference occurs.

b %jsonCircRefError is object JsonCircularReference %jsa is object json %jsb is object json %jsc is object json %jsa = array('a') %jsb = array('b') %jsc = array('c') %jsa:add(%jsb) %jsb:add(%jsc) %jsc:add(%jsa) try print %jsa:stringify catch JsonCircularReference to %jsonCircRefError print 'Caught Json Circular Reference Error' print %jsa:tostring end try end

Running this example results in:

Caught Json Circular Reference Error ["a",["b",["c",[Circular]]]]