为什么 casperjs 使用无效 javascript 代码静默中止?

Why casperjs aborted silently with invalid javascript code?

这是我试过的:

[roxma@localhost test]$ cat invalid.js
"use strict";

var casper = require('casper').create({});

// missing ;
var aa

casper.run();
[roxma@localhost test]$ casperjs invalid.js
[roxma@localhost test]$

我不知道为什么 caspers 默默地中止了。我希望对错误有一些提示。

casperjs --version
1.1.3
phantomjs -v
2.1.1

=====================

编辑

对不起,我错了。前面的例子不是错误。

下面的例子比较接近我遇到的情况

"use strict";
var casper = require('casper').create({});

casper.start('http://www.qq.com/');

casper.then(function() {
        this.echo('begin');
        var a;
        var b = {
                a: a['d']
        };
        this.echo('end');
});

casper.run();

[roxma@localhost test]$ casperjs  invalid.js
begin
[roxma@localhost test]$

您需要使用 casper.on('error') 回调来捕获错误,如下所示:

"use strict";
var casper = require('casper').create({
//    verbose: true,
//    logLevel: 'debug'
});
//casper.on('remote.message', function(msg) {this.echo('The error from evaluate: ' + msg, "ERROR");});
casper.on('error', function(msg) {
    this.echo('Error: ' + msg, "ERROR");
})

casper.start('http://www.qq.com/',function() {
        this.echo('begin');
        var a;
        var b = { a: a['d'] };
        this.echo('end');
});
casper.run();