groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dinko Srko─Ź <dinko.sr...@gmail.com>
Subject Re: Catch clause difference
Date Tue, 09 Jan 2018 09:00:54 GMT
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.mohan@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.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