Hmmm, that's true. The reason I didn't do it this way is because running ```fs.existsSync``` would probably decrease performance unnecessarily as we could use the try and catch for that, resulting in checking and reading at the same statement. But in the case a file really has bad syntax, we are not handling errors and it will confuse developers.

Either way, running ```callback(error)``` will assume someone is handling this error. For now that's not true. Looking at the code it seems it should happen in the ```Server.prototype.start``` method, for the others are just sending error upwards to this one.

My suggestion is we do it like you said, but avoid the try'n'catch for now to force syntax error on settings to be thrown and handled by node itself. Like that:
```
var filePath = applications[name]
             + '/settings.'
             + (enviroment ? enviroment + '.' : '')
             + 'json';

if (fs.existsSync(filePath)) {
  environmentSettings.push(require(path.relative(__dirname, filePath)));
}
```