On Thursday, 21 August 2014 at 17:39:16 UTC, Ali Çehreli wrote:
On 08/21/2014 04:12 AM, nrgyzer wrote:

> I'm using the goto-command to exit my function
> if an error (not necessarily an exception) occured.

Sorry to repeat myself but if an exception occurs in code before the goto, the exit code will not be executed. Of course, it may be that the function is defined 'nothrow' so my concern does not apply.

> Sure, I can
> simply do a return, but I personally prefer a fixed endpoint
of
> my functions.

Again, that is not possible in a language that has exceptions.

Ali

Sure, but what about the following pretty simple source:

bool testa(int a)
{
    bool fIsValid = (a > 0);

    if (a > 0)
       goto Exit;

    throw new Exception("int <= 0");
Exit:
    return fIsValid;
}

int main(string[] args)
{
    testa(10); // Use goto
    testa(-1); // Throws an exception
}

I'm absolutely aware that gotos are useless if an exception
occured before the goto appears. But in some cases they are very
useful, especially when I want prevent 10 ident-steps or
something else...

Okay, my question was answered -> compiler bug. Thanks in advance!

Reply via email to