Path: csiph.com!eternal-september.org!feeder.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Andreas Leitgeb Newsgroups: comp.lang.java.programmer Subject: Re: How to handle same sanity checks Date: Thu, 22 Jun 2017 12:30:01 -0000 (UTC) Organization: A noiseless patient Spider Lines: 21 Message-ID: References: <87o9tgo0a9.fsf@munus.decebal.nl> Reply-To: avl@logic.at Injection-Date: Thu, 22 Jun 2017 12:30:01 -0000 (UTC) Injection-Info: mx02.eternal-september.org; posting-host="9ecd988584fe5ba656dda35ed07d3df5"; logging-data="12221"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18gOpTD62S6XVE2F2k5aZLM" User-Agent: slrn/1.0.2 (Linux) Cancel-Lock: sha1:nrY87+Wqtj4dWNhYMqnUXFeKnFs= Xref: csiph.com comp.lang.java.programmer:36699 Eric Sosman wrote: > On 6/22/2017 7:26 AM, Andreas Leitgeb wrote: >> [...] >> If you really want it thrown at the call-site, there are these slightly >> more verbose variants: >> Let checkN() *return* the exception (or null if all was ok), then: >> for (Exception e=checkN(...);e!=null;) { throw e; } > Note that this will put checkN() at the top of the stack trace, > not the method that called it. Javadoc for Throwable (emphasis mine): > "[...] A throwable contains a snapshot of the execution stack of > its thread at the time it was *created*. [...]" Thanks for the correction! Seems to have been a long standing wrong belief on my side, and browsing on Stackoverflow and similar sites, it's an often stated (and also often correctly refuted) thing. C# seems to have it differently, but I can't use that as an excuse for me, as I haven't done any C# programming. Sorry to OP for my (in hindsight) useless answer.