По последнему пункту:
finally не "заменяет" исключение, а генерирует еще одно, оно вылетает, поэтому первоначальное мы уже не можем увидеть. Чтобы увидеть, можно так:
try {
throw new Error(404)
} catch (ex) {
console.info(ex)
} finally {
alert("Пыщь-пыщь")
throw new Error(406)
}
Niar, форматируйте код отступами, влом читать :) |
Учту=)
|
Цитата:
|
А всё Дэвид. Вот список причин исполнения finally если try закончен:
// 1) нормальным образом, достигнув конца блока // 2) изза инструкции break, continue или return // 3) с исключением, обработанным приведенным ранее блоком catch // 4) с неперехваченным исключением, которое продолжает свое // распространение на более высокие уровни Кстате break можно заюзать с меткой Кстате break без метки еще и в switch ошибки не даёт |
Niar,
Ну а почитать до конца религия не позволяет? Там написан пример:
var i = 0,
total = 0,
a = [1, "str", "10", 2];
while(i < a.length) {
try {
if ((typeof a[i] != "number") || isNaN(a[i])) // Если это не число,
continue; // переходим к следующей итерации цикла.
total += a[i]; // В противном случае добавляем число к общей сумме.
} finally {
i++; // Всегда увеличиваем i, даже если ранее была инструкция continue.
}
}
alert(total); // 3
|
delete
|
Цитата:
по поводу ошибок: ловятся все ошибки времени выполнения, не ловится ни одна ошибка компиляции |
Какая еще религия
|
Niar,
Не хотел никого обидеть. Просто есть такое выражение. Если вас задел, то извиняюсь. |
Да нет всё нормально.
|
| Часовой пояс GMT +3, время: 17:31. |