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

Reply via email to