groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mohan Radhakrishnan <radhakrishnan.mo...@gmail.com>
Subject Re: Catch clause difference
Date Mon, 08 Jan 2018 15:18:03 GMT
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.waitUntilNoSuchWidgetExceptionWithMessage(WidgetTest.groovy:54)

Thanks.

On 8 January 2018 at 19:28, Paul King <paulk@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.mohan@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
>>
>
>

Mime
View raw message