Unit Tests: An AAA-conform way to expect exceptions

I like the way how NUnit supports expected exceptions in unit tests – as opposed to some other frameworks, where you have to misuse a try-catch block

    Assert.Fail("exception expected");
catch (ExpectedException ex)
    // this is the good case, do nothing

in NUnit you can

Assert.Throws<ExpectedException>(() => DoSomething());

Or, if you want, you can make more assertions on the exception thrown:

    () => DoSomething(),
    ex => ex.Message == "Failed to do this");

However, this unfortunately (still) breaks the AAA structure of a unit test. With only a tiny helper you can get an AAA-structured unit test that expects an exception:

// Arrange
var x = "foo";

// Act
var actualException = Catch<ExpectedException>(() => DoSomething(x));

// Assert
Assert.That(actualException, Is.Not.Null);
Assert.That(actualException.Message, Is.EqualTo("Failed to do this"));

And this is the helper:

public TException Catch<TException>(Action action)
    where TException : Exception
        return null;
    catch (TException ex)
        return ex;

I think this is a big plus. What do you think? Does this approach have any drawbacks or caveats?