Or the same exception class but different classloader? Either of these two.
On Jan 9, 2018 10:01, "Dinko Srkoč" <dinko.sr...@gmail.com> wrote: > Is your `NoSuchElementException` in the catch clause by any chance > `java.util.NoSuchElementException`? > > cheers, > Dinko > > On 8 January 2018 at 16:18, Mohan Radhakrishnan > <radhakrishnan.mo...@gmail.com> wrote: > > In the second case it is this. > > > > org.openqa.selenium.NoSuchElementException > > > > In the first case this seems to escape out. > > > > So I changed my first clause to this. > > > > }catch( NoSuchElementException nse ){ > > print "Catch clause " + nse > > }catch( Exception e ){ > > print "Catch clause " + e > > } > > > > It prints org.openqa.selenium.NoSuchElementException if I catch > 'Exception'. > > > > Does this have anything to do with the 'closure' shown in this trace ? > > > > at > > com.automation.pages.PageObjectLayer$_waitUntil_closure2.doCall( > PageObjectLayer.groovy:39) > > at org.openqa.selenium.support.ui.FluentWait.until( > FluentWait.java:208) > > at > > com.automation.pages.PageObjectLayer.waitUntil( > PageObjectLayer.groovy:39) > > at > > com.automation.page.test.WidgetTest.waitUntilNoSuchWidgetException > WithMessage(WidgetTest.groovy:54) > > > > Thanks. > > > > On 8 January 2018 at 19:28, Paul King <pa...@asert.com.au> wrote: > >> > >> What does printing out `nse` in both cases show? > >> > >> On Mon, Jan 8, 2018 at 11:02 PM, Mohan Radhakrishnan > >> <radhakrishnan.mo...@gmail.com> wrote: > >>> > >>> Hello, > >>> > >>> These catch clauses are somehow different from each other. Why ? > >>> > >>> In the first case 'NoSuchElementException' is somehow escaping the > >>> 'catch' block. My test fails. > >>> > >>> But the second clause succeeds as expected. > >>> > >>> Clause 1 : > >>> > >>> catch( NoSuchElementException nse ){ > >>> > >>> throw new NoSuchWidgetException( " Element " + by.toString() + " > not > >>> found" + > >>> " after polling for [" + > >>> pollingInterval.longValue() + > >>> "] with timeout set to [" + > >>> timeOut.longValue() ); > >>> } > >>> > >>> > >>> Clause 2 : > >>> > >>> try{ > >>> WaitForWidget<Widget> wait = > >>> new WaitForWidget<WebDriver>(wd). > >>> > >>> pollingEvery(pollingInterval.longValue(),unit). > >>> withTimeout(timeOut.longValue(),unit). > >>> withMessage(supplierClosure) > >>> > >>> wait.until( { wd.findElement( by )} as Function ) > >>> }catch( nse ){ > >>> throw new NoSuchWidgetException( " Element " + by.toString() + " > not > >>> found" + > >>> " after polling for [" + > >>> pollingInterval.longValue() + > >>> "] with timeout set to [" + > >>> timeOut.longValue() ); > >>> } > >>> > >>> Thanks, > >>> Mohan > >> > >> > > >