Выбрать главу

В следующем примере показано использование инструкции continue без метки для выхода из текущей итерации цикла в случае ошибки:

for(i = 0; 1 < data.length; i++) {

  if (!data[і]) continue; // He обрабатывать неопределенные данные

  total += data[i];

}

Инструкция continue, как и break, может применяться во вложенных циклах в форме, включающей метку, и тогда заново запускаемым циклом необязательно будет цикл, непосредственно содержащий инструкцию continue. Кроме того, как и для инструкции break, переводы строк между ключевым словом continue и именем метки не допускаются.

5.6.4. Инструкция return

Как вы помните, вызов функции является выражением и подобно всем выражениям имеет значение. Инструкция return внутри функций служит для определения значения, возвращаемого функцией. Инструкция return имеет следующий синтаксис:

return выражение;

Инструкция return может располагаться только в теле функции. Присутствие ее в любом другом месте является синтаксической ошибкой. Когда выполняется инструкция return, функция возвращает значение выражения вызывающей программе. Например:

function square(x) { return х*х; } // Функция с инструкцией return

square(2)                          // Этот вызов вернет 4

Если функция не имеет инструкции return, при ее вызове интерпретатор будет выполнять инструкции в теле функции одну за другой, пока не достигнет конца функции, и затем вернет управление вызвавшей ее программе. В этом случае выражение вызова вернет значение undefined. Инструкция return часто является последней инструкцией в функции, но это совершенно необязательно: функция вернет управление вызывающей программе, как только будет достигнута инструкция return, даже если за ней следуют другие инструкции в теле функции.

Инструкция return может также использоваться без выражения, тогда она просто прерывает выполнение функции и возвращает значение undefined вызывающей программе. Например:

function display_object(o) {

  // Сразу же вернуть управление, если аргумент имеет значение null или undefined

  if (!о) return;

  // Здесь находится оставшаяся часть функции...

}

Из-за того что интерпретатор JavaScript автоматически вставляет точки с запятой, нельзя разделять переводом строки инструкцию return и следующее за ней выражение.

5.6.5. Инструкция throw

Исключение - это сигнал, указывающий на возникновение какой-либо исключительной ситуации или ошибки. Возбуждение исключения (throw) - это способ просигнализировать о такой ошибке или исключительной ситуации. Перехватить исключение (catch) - значит обработать его, т. е. предпринять действия, необходимые или подходящие для восстановления после исключения. В JavaScript исключения возбуждаются в тех случаях, когда возникает ошибка времени выполнения и когда программа явно возбуждает его с помощью инструкции throw. Исключения перехватываются с помощью инструкции try/catch/finally, которая описана в следующем разделе.

Инструкция throw имеет следующий синтаксис: