Yeah, I'm pretty sure that nothing will safely handle --athrow, at least not without heavy modifications to V8 internals. These reports are still experimental so I'm not including them inside the post.

But I'm also pretty sure that other solutions can handle the case you're describing: at least, genny can do it:

```js
var genny = require('genny'),
    fs = require('fs');

genny.run(function* bad(resume) {
    var data = yield fs.readFile('doesntexist.js', resume());
    return data.toString().split('\n')[lineNumber];
}, function(err) {
    console.log("Safely caught that error", err);
})
```

will output:

```
Safely caught that error { [Error: ENOENT, open 'doesntexist.js'] errno: -2, code: 'ENOENT', path: 'doesntexist.js' }
```


but what if we ignore the error and decide to try and split that data anyway?
```js
var genny = require('genny'),
    fs = require('fs');

var bad = genny.run(function* bad(resume) {
    try {
        var data = yield fs.readFile('doesntexist.js', resume());
    } catch (e) {
        console.log("caught", e);
    }
    return data.toString().split('\n')[lineNumber];
}, function(err) {
    console.log("Safely caught that error", err);
})
```

Still okay :)

```
caught { [Error: ENOENT, open 'doesntexist.js'] errno: -2, code: 'ENOENT', path: 'doesntexist.js' }
Safely caught that error [TypeError: Cannot call method 'toString' of undefined]
```

What if we're deep inside multiple generators?

[No problem, everything should still propagate just fine](https://github.com/spion/genny#debugging) - although to get those long stack traces there is a performance penalty (should be going away soon though)

So I'm still not seeing the exclusive benefit of stratifiedjs/fibrous WRT error handling...