To be clear
block 0 : 0 - 3 block 1 : 4 - 10 block 2 : 13 - 16/17 block 3 : 18
I agree that it is confusing to have a / catch attempt in the second block, because this seems like a possible endless loop. that is, if the exception occurs between 13 and 16, it jumps to 13 to handle it. I can only guess
- there is a safe exception that you can try to protect against.
- it is retained for an incomprehensible reason for backward compatibility.
- there is no good reason for this, and it is an artifact of creating byte code.
I suspect that this does nothing useful, and I think that someone at Oracle was just as suspicious, but he did not know for sure that it could be deleted .;)
source share