std.xml validity checking is absurd

Stewart Gordon smjg_1998 at yahoo.com
Fri Feb 8 09:00:55 PST 2013


Moreover, what do people think about the situation whereby check's sole payload is to 
possibly throw an exception?

Normally under an exception-handling system, the behaviour of a function is: Do something, 
or if you cannot, then throw an exception.

But what is the "something" in the case of check?  As far as I can see, XML validity isn't 
something that check needs in order to do its business - rather, the validity checking 
_is_ the business.  On this basis, it probably ought to return a boolean indicating 
whether the input string is a valid XML document.

If the function is wholly or primarily for the library's internal use, it might make sense 
to have the checker function just throw the exception that will be passed back to the 
library user.  But this doesn't seem to be the point in this instance, since the caller 
swallows the exception and asserts.  It might as well just swallow a boolean return value 
(or a string return containing an error message) and assert.

And once the module is fixed so that the parser checks as it goes along, I suppose check 
would remain, but it would be a user function for the odd cases where you just want to 
check validity and don't want to process the content of the file for whatever reason.  On 
this basis again, logically it ought to return a pass/fail indication rather than using 
"expection handling".  But this would be a breaking change....

Stewart.


More information about the Digitalmars-d mailing list