+ if (errorExpression != null) {\r
+ StringBuffer destination = new StringBuffer();\r
+ try {\r
+ outerProcess(aParser, aContext, aDestination, aLogger);\r
+ }\r
+ catch (Throwable t) {\r
+ try {\r
+ destination.delete(0, destination.length());\r
+ aParser.processPseudoAssignment(aContext, "exception", t);\r
+ destination.append(aParser.evaluateStringExpression(aContext, errorExpression));\r
+ }\r
+ catch (Throwable s) {\r
+ throw new TemplateProcessingException(s);\r
+ }\r
+ }\r
+ finally {\r
+ aDestination.append(destination);\r
+ }\r
+ }\r
+ else {\r
+ outerProcess(aParser, aContext, aDestination, aLogger);\r
+ }\r
+ }\r
+\r
+ public void outerProcess(TALExpressionParser aParser, Object aContext, StringBuffer aDestination, TALLogger aLogger) throws TemplateProcessingException {\r