为什么即使被捕获也会记录异常?

时间:2015-12-10 15:22:49

标签: javascript

背景:我来自Python世界,其中try: / except:完全处理异常,即我可以控制捕获异常时输出的内容。

我正在对可能无法使用的API进行AJAX调用:

function updateAPI() {
    getAPI()
            .done(function (r) {
                console.log('got API response: ' + JSON.stringify(r));
                updateFromAPI(r);
            })
            .fail(function (r) {
                console.log('failed to get API response: ' + r);
            }
            );
}

function getAPI() {
    return $.ajax({
        type: 'GET',
        url: 'http://127.0.0.1:8081/api'
    });
}

我原本希望将我的两条消息中的一条发送到控制台,就这样。但是,控制台还显示了由JS记录的实际错误:

Failed to load resource: net::ERR_CONNECTION_REFUSED (16:11:45:867 | error, network)
  at http://127.0.0.1:8081/api
failed to get API response: [object Object] (16:11:45:868)

这种冗长是否正常?

第二行显示我发现错误(我不知道如何正确显示)。

1 个答案:

答案 0 :(得分:0)

根据the doc

  

jqXHR.fail(function(jqXHR,textStatus,errorThrown){});

     

对于失败的请求,参数与.fail()的参数相同:jqXHR对象,textStatus和errorThrown

通过执行console.log('failed to get API response: ' + r);,您只需记录xhr对象(即[object Object])。

尝试:

.fail(function (r, textStatus, errorCode) {
    console.log('failed to get API response: ' + textStatus + '(error ' + errorCode + ')');
});