cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joerg Heinicke <joerg.heini...@gmx.de>
Subject Re: how to throw (not propagate) an error?
Date Wed, 07 Jan 2004 00:55:12 GMT
On 06.01.2004 22:41, Lars Huttar wrote:

>>-----Original Message-----
>>From: Joerg Heinicke [mailto:joerg.heinicke@gmx.de]
>>
>>The XSP code is transformed into a method generate() which throws the 
>>ProcessingException. So you don't have to care about it.
>>
>>Joerg
> 
> 
> Can you explain this?
> In what way do I not need to care about it? (And what is "it"?)

An XSP is transformed via XSLT to a Java file. The XSLT can be found at 
http://cvs.apache.org/viewcvs.cgi/cocoon-2.1/src/java/org/apache/cocoon/components/language/markup/xsp/java/xsp.xsl

(or at the same place in your Cocoon source you have anywhere on your 
disk of course). You can see, that most of the stuff goes into the method

public void generate() throws SAXException, IOException, ProcessingException

So "throw new ProcessingException()" simply works and "you don't have to 
care about it".

> Right now, I'm sometimes getting LanguageExceptions, saying that
> I have unreachable code:
>       this.contentHandler.endElement(
> I guess this is caused by my "throw" which precedes the endElement method
> call in the generated Java code.
> Can you suggest what I should do differently?

No, sorry, I can't help. You only can look at the generated Java code 
(must lying around in the working directory) and see what's gone wrong. 
Maybe you also look into the stylesheet to understand why it's gone 
wrong. And this exactly the problem I personally have with XSP: It 
doesn't really abstract from implementation details and you often came 
to such errors. A much more annoying issue is the handling of 
xsp:attribute's: http://nagoay.apache.org/bugzilla/show_bug.cgi?id=15841.

Joerg

>>On 30.12.2003 22:58, Lars Huttar wrote:
>>
>>
>>>Never mind, I think I got it... it was actually very easy
>>>once I realized that throwing an exception from Java code
>>>in an XSP page might not be hard. (Guess I have some
>>>Javaphobia. I don't want to get bogged down too much in
>>>the underlying details of Cocoon.)
>>>
>>>Anyway, I merely put the following in my (generated) XSP 
>>
>>action page:
>>
>>>            <xsp:logic>
>>>              <!-- Generate exception to be caught in sitemap -->
>>>              throw new ProcessingException("Authorization 
>>
>>failed.");
>>
>>>            </xsp:logic>
>>>
>>>I figured this would give me all sorts of errors such as
>>>not declaring/catching the exception... but it didn't; instead
>>>it just COMPLETELY WORKED!
>>>Blow me over.
>>>
>>>Lars


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Mime
View raw message