Finally *always* runs. Else runs *only if* there are no exceptions.

On Oct 1, 2015 12:08 AM, "Jochen Theodorou" <blackdrag@gmx.org> wrote:
Am 28.09.2015 19:44, schrieb Edinson E. Padrón Urdaneta:
​>What behaviour do you expect of the else block if an exception exception
in the try block is thrown, which is not catched and if a finally block
is present? Example:

try {
  m1() //throws MyException
} catch (SomeExceptionThatWillNotBeThrown e) {
} else {
  m2()
} finally {
  m3()
}

So is this supposed to do m1();m3() then? In  other words apiece of code
executed only if he try block throws no exception at all?

​Hi, Jochen. That's right, /m2()/ would not be executed because the
exception threw wasn't catch and the normal java/groovy behavior of
executing /m3()/ and passing the exception threw inside the try block to
the 'next higger context' would happen.


sorry, didn't see the answer for some reason... how does it differ from

try {
  m1() // throws MyException
  m2()
} catch (SomeExceptionThatWillNotBeThrown e) {
} finally {
  m3()
}

bye blackdrag

--
Jochen "blackdrag" Theodorou
blog: http://blackdragsview.blogspot.com/