def __call__(self,*args, **kw):
last_exc = TryNext()<EOL>for prio,cmd in self.chain:<EOL><INDENT>try:<EOL><INDENT>return cmd(*args, **kw)<EOL><DEDENT>except TryNext as exc:<EOL><INDENT>last_exc = exc<EOL><DEDENT><DEDENT>raise last_exc<EOL>
Command chain is called just like normal func.

        This will call all funcs in chain with the same args as were given to
        this function, and return the result of first func that didn't raise
        TryNext