This and the two lines below should probably be move to an ```else``` block, to make clear that we only want to catch exceptions from ```hook['func']```, and only mark the hook as done if no exception occurred.