Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

try-catch performace

27 views
Skip to first unread message

Christoph Happich

unread,
Aug 31, 2004, 5:45:47 AM8/31/04
to
Hi NG,

Um eine Pluginschittstelle abzusichern, moechte ich eigendlich alle
Zugriffe auf implementierte Methoden mit einem catch-all umgeben.
Frage: Hat das irgendwelche Einfluesse auf die Performance? Die meisten
der Methoden sind dabei uebrigens durchaus inline-faehig.

Christoph

Lothar Kimmeringer

unread,
Aug 31, 2004, 6:35:20 AM8/31/04
to

Solange keine Exception geworfen wird, ist der Einfluss
genau null. Erst das Erzeugen einer Exception geht dann
auf die Performance.


Gruesse, Lothar
--
Lothar Kimmeringer E-Mail: spam...@kimmeringer.de
PGP-encrypted mails preferred (Key-ID: 0x8BC3CD81)

Always remember: The answer is forty-two, there can only be wrong
questions!

Christoph Happich

unread,
Aug 31, 2004, 9:45:53 AM8/31/04
to
Lothar Kimmeringer wrote:
> On Tue, 31 Aug 2004 11:45:47 +0200, Christoph Happich wrote:
>
>>Um eine Pluginschittstelle abzusichern, moechte ich eigendlich alle
>>Zugriffe auf implementierte Methoden mit einem catch-all umgeben.
>>Frage: Hat das irgendwelche Einfluesse auf die Performance? Die meisten
>>der Methoden sind dabei uebrigens durchaus inline-faehig.
>
> Solange keine Exception geworfen wird, ist der Einfluss
> genau null. Erst das Erzeugen einer Exception geht dann
> auf die Performance.

So soll das sein.

Gruss, Christoph

Sven Köhler

unread,
Aug 31, 2004, 2:38:13 PM8/31/04
to

ich vermute hinter der Frage einen Denkfehler. Du denkst es gäbe
Methoden die keine Exception werfen können. In Java kann _jede_ Methode
eine Exception werfen, z.B. RuntimExceptions oder Errors. D.h. beim
Aufruf einer Methode findet _immer_ eine Überprüfung auf eine geworfenen
Exception statt. Natürlich werden - wenn keine Exception vorliegt - die
ganzen catch-Blöcke übersprungen, und daher gibt es auch keinen
Performanceverlust wie Lothar schon schrieb.

Lothar Kimmeringer

unread,
Aug 31, 2004, 3:32:19 PM8/31/04
to
On Tue, 31 Aug 2004 20:38:13 +0200, Sven Köhler wrote:

> In Java kann _jede_ Methode
> eine Exception werfen, z.B. RuntimExceptions oder Errors. D.h. beim
> Aufruf einer Methode findet _immer_ eine Überprüfung auf eine geworfenen
> Exception statt.

Es ist genau anders herum. Wenn eine Exception geworfen, wird
ueberprueft, ob dies innerhalb eines catch-Block passierte.
Ist das nicht der Fall, wird die gleiche Ueberpruefung in
der aufrufenden Methode vorgenommen, usw. bis man "ganz
oben" ankommt und man bekannten Stacktrace auf der Konsole
praesentiert bekommt und die Applikation beendet wird.

Sven Köhler

unread,
Aug 31, 2004, 5:05:13 PM8/31/04
to
>>In Java kann _jede_ Methode
>>eine Exception werfen, z.B. RuntimExceptions oder Errors. D.h. beim
>>Aufruf einer Methode findet _immer_ eine Überprüfung auf eine geworfenen
>>Exception statt.
>
> Es ist genau anders herum. Wenn eine Exception geworfen, wird
> ueberprueft, ob dies innerhalb eines catch-Block passierte.
> Ist das nicht der Fall, wird die gleiche Ueberpruefung in
> der aufrufenden Methode vorgenommen, usw. bis man "ganz
> oben" ankommt und man bekannten Stacktrace auf der Konsole
> praesentiert bekommt und die Applikation beendet wird.

Tja, wieder was gelernt.

0 new messages