JavaScript подавляет конкретную ошибку

У меня есть следующая строка в моем файле JavaScript, которая создает сообщение об ошибке на консоли:

myObject.width = 315;

Я хочу скрыть это сообщение об ошибке на консоли. Я имею в виду, что эта строка кода запустится, выдаст ошибку, но не отобразит ее в журнале консоли.

Я читал про window.onerror, но это не сработало. Насколько я понимаю, это отключает все ошибки на странице, однако я хочу отключить ошибки только своей строки. Я попытался поставить его сразу после, но это тоже не сработало:

myObject.width = 315;
window.onerror = function(){
       return true;
    }

Есть ли обходной путь для этого? Спасибо.


person Faruk Yazici    schedule 07.04.2016    source источник
comment
Почему вы хотите, чтобы он выдавал ошибку, если он нигде не покажет ошибку? Почему бы просто не проверить, установлен ли myObject?   -  person Barmar    schedule 07.04.2016
comment
Я не хочу давать ошибку. Я просто хочу запустить код с ошибками, но не показывать их.   -  person Faruk Yazici    schedule 07.04.2016


Ответы (1)


Вообще говоря, это не должно приводить к ошибке. Какую ошибку вы получаете? Что myObject не определен? Если это так, просто добавьте защиту и проверьте, определена ли она. Такие как:

if (myObject) {
    myObject.width = 315
}

Тем не менее, вы можете подавить его, завернув в попробовать поймать

try {
    myObject.width = 315;
}
catch(err) {
    // do nothing
}

Чтобы увидеть, что происходит, попробуйте запустить следующий код и посмотреть, что происходит, когда вы удаляете строку var myObject = {}.

var myObject = {}

try {
    myObject.width = 315;
} catch(err) {
    console.log('error');
}

console.log(myObject)
person Emil Oberg    schedule 07.04.2016
comment
Это предотвращает ошибку, но в конечном итоге строка кода не запускается. - person Faruk Yazici; 07.04.2016
comment
@FarukYazıcı Что вы ожидаете от него в случае ошибки? - person Barmar; 07.04.2016
comment
@FarukYazıcı Строка myObject.width = 315; очень выполняется. Я обновил свой ответ примером. Видите, что он регистрирует обновленный объект? И если вы удалите первый оператор var, он запишет ошибку. - person Emil Oberg; 07.04.2016