Path: csiph.com!x330-a1.tempe.blueboxinc.net!usenet.pasdenom.info!news.albasani.net!.POSTED!not-for-mail From: Jan Burse Newsgroups: comp.lang.java.programmer Subject: Re: Avoid creating a stacktrace prior to JDK 1.7 Date: Sat, 01 Oct 2011 13:22:46 +0200 Organization: albasani.net Lines: 49 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Trace: news.albasani.net Hagnx9hnA9nuGc2s6oluFHtJKeMxIPRLP/DOYadx41m2bqw58J+8ljUXFUeEUosERA0OmQriXItzAQKMVClXlQ== NNTP-Posting-Date: Sat, 1 Oct 2011 11:22:50 +0000 (UTC) Injection-Info: news.albasani.net; logging-data="LaLM2S0/CKREsXqGJPZ70tlisDlr8J6c08568slmjp8qINDqGRWzrCK5hOlVdbQR4BGXpF6+Ft7pTj+VvEPY6jx5IzqePuYFwrOtzS37xCgD4x9803MMurvQMZMV+z3t"; mail-complaints-to="abuse@albasani.net" User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0.2) Gecko/20110902 Firefox/6.0.2 SeaMonkey/2.3.3 In-Reply-To: Cancel-Lock: sha1:E0Vtb9XIiiIscgTQh8Mt/run8mU= Xref: x330-a1.tempe.blueboxinc.net comp.lang.java.programmer:8437 Stanimir Stamenkov schrieb: > Fri, 30 Sep 2011 15:57:57 +0200, /Jan Burse/: > >> I have the following code deep down in a >> recursion which eats up a lot of stack. >> The recursion is not shown but only >> the code: >> >> Class class; >> try { >> class = Class.forName(str); >> } catch (ClassNotFoundException x) { >> class = null; >> } >> >> Will it every time I call it for a >> non-existing class build the whole stack >> trace for the exception x and then >> immediately forget about it? > > I guess so. > >> [...] >> Can I instruct an exception >> to not fill the stack trace? And way >> arround? > > You may perform a check which avoids the exceptional situation like: > > Class class; > try { > class = (Class.getResource(str + ".class") != null) > ? Class.forName(str) > : null; > } catch (ClassNotFoundException x) { > class = null; > } > > The Class.forName(String) could still fail if the access to the resource > content is restricted, I imagine. > Yes, this would change the role of exceptions, not use it for business logic, only for exceptional flow. gr8, thx Bye