this might end up getting too verbose, but something like the following might help manage exception cases:
const catchTree = new Catch(EXCEPTION_CODE, tryTree, successTree, exceptionTree, finallyTree);
I'm not really sure what form the EXCEPTION_CODE would look like or how tryTree would know how to throw it - perhaps a specially monitored ResultCode?