SAX/C++: C++-specific design principles

Steinar Bang sb at metis.no
Tue Dec 7 07:27:43 GMT 1999


>>>>> "Mark D. Anderson" <mda at discerning.com>:

> Unlike java or perl, exceptions in C++ are a bit of a land mine, 
[snip!]

Se Items 9 through 15, and in particular Item 15 "Understand the costs
of exception handling", in Scott Meyers' "More Effective C++"
	http://www.awl.com/cseng/titles/0-201-63371-X/
for more detail on this.

> Not to mention the fact that there is no standard for cross-language
> exception raising.

> choices seem to be:
> - return an error code
> - return a boolean success/failure
> - use C++ exceptions
> - call an error handler and return 0 (which may not get run if the
>   error handler aborts)
> - some combination of the above, configurable by the programmer

Personally I'm partial to allocate the "return value" in the caller,
and give a reference argument to this value and return a status code,
rather than returning the value itself, e.g.
	bool getValue(int index, string& value);
rather than
	const string& getValue(int index);

The syntax is more clumsy, but the memory management is easier (I'm
also partial to allocate objects on the stack in the caller, rather
than doing new).

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To unsubscribe, mailto:majordomo at ic.ac.uk the following message;
unsubscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)





More information about the Xml-dev mailing list