That is, if you have a throwing fn, the flow would be:

```
try block
enter domain
fn() up until the throw
!throw!
error handling logic (_fatalException, etc)
finally block
this.exit()
```

For a non-throwing fn, it'd be:

```
try block
enter domain
fn()
set return value
finally block
this.exit()
return
```