У меня есть функции Javascript, которые выдают исключения, если что-то идет не так.Я так привык к такому поведению, что однажды мне потребовалось более 20 минут, чтобы найти ошибку в коде, потому что функция не вызвала исключение, она просто молча вышла из строя.
Попробуйте следующий код в Firefox сПлагин Firebug.Создайте HTML-страницу с функцией:
function myfunc(key)
{
alert('I started');
if(!key)
throw 'myfunc: Invalid arguments';
}
Затем создайте вторую HTML-страницу с кодом:
<script type="text/javascript">
myfunc(null);
alert('Exception was before me!');
</script>
и загрузите эту вторую HTML-страницу с первой страницы с помощью jQuery $ .ajax.function.
Код будет выполнен правильно, но вы не увидите никаких исключений, зарегистрированных в консоли Firebug.
Если вы запустите ту же функцию myfunc (null) прямо на первой html-страницевы сразу увидите в Firebug красную строку:
uncaught exception: myfunc: Invalid arguments
Но ничего не выходит из системы, если она выполняется jQuery (я думаю, jQuery использует eval для запуска сценариев после $ .ajax).
Значит ли это, что сам jQuery перехватывает исключения и игнорирует их при оценке Javascript?Могу ли я сказать jQuery, чтобы мои исключения проходили?