I was surprised to see that the Digester ignores parsing errors by
overriding fatalError(), error() and warning() and just logging the parse
exception without re-throwing it. The default behavior for the HandlerBase
fatalError() method is to re-throw the exception so it seems like Digester
should re-throw it after it logs it. At first I thought extending Digester
would allow me to work around this problem but Digester is declared to be
final. Is there any way to know that a parsing error occurred after calling
Digester.parse()? I think the Digester should re-throw exceptions in at
least fatalError() and it should not be a final class. Let me know if I am
missing something.

    public void fatalError(SAXParseException exception) throws SAXException
{

        log("Parse Fatal Error at line " + exception.getLineNumber() +
            " column " + exception.getColumnNumber() + ": " +
            exception.getMessage(), exception);
    }

Thanks, 
Hal

Reply via email to