Всякий раз, когда ошибка возникает внутри обработчика события, он полностью прекращает выполнение кода, поэтому вызов второго события не вызывается.Ошибка Javascript останавливает выполнение кода
Например:
$(function() {
window.thisDoesntExist();
}
$(function() {
//Do something unharmful and unrelated to the first event
}
Вы можете легко решить эту проблему в этом (упрощенном), например, путем добавления TRY/поймать в обеих анонимных функций, но в действительности эти функции часто добавляют несколько других обработчиков событий, которые, в свою очередь потребует try/catch. Я получаю очень повторяющийся код, заполненный блоками try/catch.
Мои проекты имеют модульную конструкцию, где каждая функция находится в другом JS (и получает сцепление в процессе сборки). Я ищу более общий способ обработки ошибок внутри каждой функции, чтобы ошибка не прекращала выполнение кода другими функциями.
Я уже пробовал следующие решения: - window.onerror (даже если вы возвращаете верно в этой функции, выполнение кода останавливается) - $ (окно) .error() => осуждается и выполнение кода останавливается
Вы прочитали мой вопрос? Вы можете легко решить проблему в этом (упрощенном) примере, добавив try/catch в обе анонимные функции, но на самом деле эти функции часто добавляют несколько других обработчиков событий, которые, в свою очередь, потребуют try/catch. Я получаю очень повторяющийся код, заполненный блоками try/catch. – Webberig
Ну, может быть, это компромисс, который вы должны сделать, если хотите, чтобы ваш код был настолько прочным, насколько это возможно. – CBroe
@Webberig, обязательно сделаю. Основное требование, которое вам нужно, - продолжить выполнение кода (любой) ошибки. Единственный способ - использовать try catch. Это первый шаг. После этого вы можете использовать обратный вызов ошибки или исправить событие ошибки или что-то еще, чтобы сделать вашу обработку ошибок прочной и гибкой. Вы можете ссылаться на исходный код Requirejs, он также использует try catch. https://github.com/jrburke/requirejs/blob/master/require.js –