OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] Seeking SAXException pattern

[ Lists Home | Date Index | Thread Index ]

Tim,

Well, you hit one of the dirtier chapters in the SAX usage story. The 
SAXException denotes that something is wrong with the parsed document: 
it is not XML correct OR it contains bogus data according to your 
ContentHandler. It kinda makes sense in a Java way. Keeping that in mind 
you could do something like this:

Make a class called TimBraySAXException:
public class TimBraySAXException extends SAXException { //details.. }

Change your ContentHandlers to use:
  try
  {
    myValidationCode(s, start, length);
  }
  catch (Exception e)
  {
    throw new TimBraySAXException (e);
  }


And you do not have to do any picking anymore:
  try
  {
    xmlReader.parse("mydoc.xml");
  }
  catch (TimBraySAXException e)
  {
    //do one thing
  }
  catch (SAXException e)
  {
    //do other, probably less interesting, thing.
  }

Hope that helps!

Mik Lernout

Tim Bray wrote:

> I'm writing some java code that uses a basic SAX parser, and I haven't 
> done this for years if ever, and the callback routines all have 
> signatures that throw SAXExceptions, e.g.
>
>   public void characters(char [] s, int start, int length)
>     throws SAXException
>
> So, suppose I'm in this callback and something horrible happens; for 
> example I discover that the content that I'm looking at here is 
> completely bogus.  I can't throw an Exception of any kind without 
> screwing up the signature.  So I have this pattern all over my code.
>
>   try
>   {
>     myValidationCode(s, start, length);
>   }
>   catch (Exception e)
>   {
>     throw new SAXException(e);
>   }
>
> And then I have to catch the SAXException and pick it apart to see if 
> it's really one of mine.  All of which seems kind of dorky.  I'm sure 
> there must be a standard good practice that's been developed here?  -Tim
>
>
> -----------------------------------------------------------------
> The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
> initiative of OASIS <http://www.oasis-open.org>
>
> The list archives are at http://lists.xml.org/archives/xml-dev/
>
> To subscribe or unsubscribe from this list use the subscription
> manager: <http://www.oasis-open.org/mlmanage/index.php>
>





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS