Why domains does not catch below exception?

Why domain does not handle below error?

var globalDomain = domain.createDomain();

globalDomain.run( function() {
    // Why below exception does not get handled by globalDomain?
    throw "some error"; 
});

globalDomain.on('error', function(msg) {
    console.log("In global error event:" + msg);
});

Again, It works perfectly well with below code,

var globalDomain = domain.createDomain();

globalDomain.run( function() {
    setTimeout(function(){
        throw "some error from timeout";
    },0);
});

globalDomain.on('error', function(msg) {
    console.log("In global error event:" + msg);
});

var globalDomain = domain.createDomain();

globalDomain.on('error', function(msg) {
    console.log("In global error event:" + msg);
});

globalDomain.run( function() {
    //  exception gets handled by globalDomain !!
    throw "some error"; 
});