ItemNotFound class: Difference between revisions
mNo edit summary |
mNo edit summary |
||
Line 2: | Line 2: | ||
__NOTOC__ | __NOTOC__ | ||
An <var>ItemNotFound</var> exception indicates that a collection object search located no collection items that satisfy the selection criterion specified in the collection method that invoked the search. | An <var>ItemNotFound</var> exception indicates that a collection object search located no collection items that satisfy the selection criterion specified in the collection method that invoked the search. | ||
There are several | There are several [[Collections#Searching a collection|searching]] methods, but only those that return a single found item produce an <var>ItemNotFound</var> exception. | ||
This exception class has no properties. It is simply a notification that a valid search found no items that met the selection criterion. | This exception class has no properties. It is simply a notification that a valid search found no items that met the selection criterion. | ||
Line 22: | Line 22: | ||
The <var>Try/Catch</var> approach is slightly more efficient than a test for a zero result. <var>[[Try]]</var> generates no quads other than the branch around the catch block if the search succeeds. And in fact, you could put a <var>Try</var> around a loop and use the <var>ItemNotFound</var> exception to exit the loop: | The <var>Try/Catch</var> approach is slightly more efficient than a test for a zero result. <var>[[Try]]</var> generates no quads other than the branch around the catch block if the search succeeds. And in fact, you could put a <var>Try</var> around a loop and use the <var>ItemNotFound</var> exception to exit the loop: | ||
<p class="code"> %i = 0 | <p class="code"> %i = 0 | ||
try | |||
repeat forever | repeat forever | ||
%i = %colla:findNextItemNumber(<criterion>), start=%i) | %i = %colla:findNextItemNumber(<criterion>), start=%i) | ||
Line 28: | Line 28: | ||
... process the object | ... process the object | ||
end repeat | end repeat | ||
catch itemNotFound | |||
end try | end try | ||
</p> | </p> | ||
Line 46: | Line 46: | ||
<h2> | <h2>New constructor</h2> | ||
{{Template:ItemNotFound:New subtitle}} | |||
This callable constructor generates an instance of an <var>[[ItemNotFound_class|ItemNotFound]]</var> exception. The <var>New</var> method format follows: | |||
==Syntax== | |||
{{Template:ItemNotFound:New syntax}} | |||
===Syntax terms=== | |||
<table class="syntaxTable"> | |||
<tr><th>%itemNotFound</th> | |||
<td>A reference to an instance of an <var>ItemNotFound</var> object. | |||
</td></tr> | |||
<tr><th><var>%(ItemNotFound)</var></th><td>The class name in parentheses denotes a shared method.</td></tr> | |||
</table> | |||
[[Category:System exception classes]] | [[Category:System exception classes]] |
Revision as of 16:25, 10 May 2011
An ItemNotFound exception indicates that a collection object search located no collection items that satisfy the selection criterion specified in the collection method that invoked the search.
There are several searching methods, but only those that return a single found item produce an ItemNotFound exception.
This exception class has no properties. It is simply a notification that a valid search found no items that met the selection criterion.
The class's only method is the New constructor, which you would typically use with a User Language Throw statement to produce an ItemNotFound exception. For example:
throw %(itemNotFound):new
When working with the collection searching methods, remember that an exception is thrown only if there is a catcher for the exception. For example, if you expect one or no matches from your search, you might specify a block like the following:
try %terminationInfo = - %terminationList:findNextItem (eq(custId, %custid) ... process the termination info catch itemNotFound end try
On the other hand, if you always expect a match, you might want a program crash to result if you are wrong about the match, so you could leave out a Try/Catch.
The Try/Catch approach is slightly more efficient than a test for a zero result. Try generates no quads other than the branch around the catch block if the search succeeds. And in fact, you could put a Try around a loop and use the ItemNotFound exception to exit the loop:
%i = 0 try repeat forever %i = %colla:findNextItemNumber(<criterion>), start=%i) %obj = %colla(%i) ... process the object end repeat catch itemNotFound end try
The ItemNotFound class is available as of version 7.6.
The ItemNotFound methods
The following are the available ItemNotFound class methods.
Method | Description |
---|---|
New | Create a new ItemNotFound object |
The methods in the class are described in the subsections that follow. In addition:
- "Notation conventions for methods" has information about the conventions followed.
- "ItemNotFound methods syntax" is a single page that contains the syntax diagrams of all the methods in the class.
New constructor
Create a new ItemNotFound object (ItemNotFound class) This callable constructor generates an instance of an ItemNotFound exception. The New method format follows:
Syntax
%itemNotFound = [%(ItemNotFound):]New
Syntax terms
%itemNotFound | A reference to an instance of an ItemNotFound object. |
---|---|
%(ItemNotFound) | The class name in parentheses denotes a shared method. |