function assertThrows(func, extraArgCatcher) {
    if (extraArgCatcher !== undefined) {
        fail('Extra assertThrows arg');
    }
    try {
        func();
    } catch(ex) {
        return new AssertionSubject(ex, 'assertThrows');
    }
    fail('Expected an exception to be thrown by ' + func);
    return undefined;
}
Invokes a function, requiring it to throw an exception. Returns the exception wrapped in an assertion subject.
@param {function()} func
@param {=undefined} extraArgCatcher
returns {!AssertionSubject}