尝试catch无法捕获错误

时间:2017-01-23 17:56:24

标签: javascript jquery

我的网站有砌体博客。我使用Masonry js插件(http://masonry.desandro.com/)。

但是如果页面没有博客(例如关于页面)我在控制台中收到js错误:

Bad masonry element: null

我尝试使用“try catch”

(function($){

    "use strict";

    $(document).ready(function(){

        try {
            var container = document.querySelector('#masonry');
            var msnry = new Masonry( container, {
                itemSelector: '.post-item'
            });
        } catch(err) {

        }

    });

})(window.jQuery);

但我仍然收到此错误

2 个答案:

答案 0 :(得分:0)

您在控制台中看到的错误消息将由插件明确记录。

如果你把

catch(err) {
    console.log('exception is caught', err);
}

你会看到异常被抓住了。 为防止出现该消息,您可以向容器添加支票

var container = document.querySelector('#masonry');
if(container){
    var msnry = new Masonry( container, {
        itemSelector: '.post-item'
    });
}

答案 1 :(得分:0)

try catch语句用于捕获和处理错误,而不是禁用它们。 使用以下代码尝试防止错误:

(function($){

    "use strict";

    $(document).ready(function(){

            if($("#masonry").length) {
               var container = document.querySelector('#masonry');
               var msnry = new Masonry( container, {
                 itemSelector: '.post-item'
               });
            }

    });

})(window.jQuery);