When it comes to using goto in D, the behaviour seems to be that you cannot
enter a try block, and neither can you enter or exit from a
finally block.
What about catch blocks? It seems that there is no restrictions imposed on
them, meaning that the following is legal.
void main()
{
goto in_catch;
try
{
throw new Exception("msg");
}
catch (Exception e)
{
in_catch:
throw e;
}
}
As strongly as I feel that goto into catch blocks shouldn't be allowed, is this
the intended behaviour of the language? If so, why?