ItemNotFound class

From m204wiki
Revision as of 06:36, 22 April 2011 by Goff (talk | contribs) (tags and edits)
Jump to navigation Jump to search

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 methods for "searching a collection", 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 methods in this class are listed at "List of ItemNotFound methods".

The ItemNotFound class is available as of version 7.6.