On 28 September 2015 at 10:22, Edinson E. Padrón Urdaneta <edinson.padron.urdan...@gmail.com> wrote: > On Mon, Sep 28, 2015 at 3:22 AM, Maarten Boekhold <boekh...@gmx.com> wrote: >> >> Just put the 'else' code at the end of the try block! >> >> Maarten > > > That's not a satisfactory answer for my question. Besides, what would happen > if the code that throws the exception is part of a return sentence? What if > the 'else code' that is after the code that throws the exception throws one > of its own and it's captured by the catch block(s)? In the other hand, isn't > more clear to have inside the try block only the code that should be 'tested > for an exceptional situation'?
If I understand you correctly, what you're proposing would look a bit like this: try { mayThrow() } catch (e) { handleException(e) } else { try { shouldNotThrowButOneNeverKnows() } catch(e) { handleExceptionInElse(e) } } finally { cleanup() } I have two questions: * `else` as a keyword implies that the `else` block is executed instead of another code block. What would that another block be? * if `try` block is the last one in a method, it'll be evaluated as an expression and the result of the last expression inside try/catch is the method's return value. What would be the return value in your proposal? Cheers, Dinko