Am 31.10.2011 02:21, schrieb Mehrdad:
I've written this piece of code a fair number of times:

       static if (is(typeof(foo()))) { foo(); }
       else { bar(); }

When the expression inside the condition (i.e. the call to foo()) gets
complicated, you get lots of code duplication and things become harder
to read.

So I'm thinking, why not just introduce a 'static try'?

Something like:

      static try
      {
          foo();
      }
      catch  // (string ex)  // perhaps let them know what the error is?
      {
          bar();
      }

It's a clean and immensely readable improvement IMO, and it doesn't
introduce any new keywords or any breaking changes to anything.

How's the idea?

1. sorry but look like static exception based flow control - because of the "try/catch" - and that is evil

2.

static try
{
}

introduces an compiletime scope - what would the following code mean?

static try
{
  int x = 10;
  foo();
  int y = 20;
}
catch
{
  bar();
}


Reply via email to