js отказоустойчивый оператор, даже если возникнут ошибки js, ошибка не будет выдана (чтобы предотвратить появление символа желтого треугольника в правом нижнем углу браузера, иначе взаимодействие с пользователем будет плохим)
Скопируйте код кода следующим образом:
window.onerror=function(){вернуть истину;}
Следующее предназначено для получения информации об исключениях js, чтобы помочь разработчикам находить проблемы.
1, попробуй... поймай...
Скопируйте код кода следующим образом:
<тип сценария="текст/javascript">
вар txt=""
функция сообщение()
{
пытаться
{
adddlert("Добро пожаловать, гость!")
}
поймать (ошибиться)
{
txt="На этой странице ошибка./n/n"
txt+="Нажмите "ОК", чтобы продолжить просмотр этой страницы,/n"
txt+="Нажмите «Отмена», чтобы вернуться на домашнюю страницу./n/n»
если(!подтвердить(текст))
{
document.location.href="/index.html"
}
}
}
</скрипт>
2, бросить
Скопируйте код кода следующим образом:
<тип сценария="текст/javascript">
var x=prompt("Пожалуйста, введите число от 0 до 10:","")
пытаться
{
если (х>10)
бросить "Err1"
иначе, если (х<0)
бросить "Эрр2"
иначе, если(isNaN(x))
бросить "Err3"
}
поймать(э)
{
если(er=="Ошибка1")
alert("Ошибка! Значение слишком велико!")
если(эр == "Ошибка2")
alert("Ошибка! Значение слишком мало!")
если(эр == "Ошибка3")
alert("Ошибка! Значение не является числом!")
}
</скрипт>
3, ошибка:
Скопируйте код кода следующим образом:
<тип сценария="текст/javascript">
onerror=handleErr
вар txt=""
функция handleErr(msg,url,l)
{
txt="На этой странице ошибка./n/n"
txt+="Ошибка:" + сообщение + "/n"
txt+="URL: " + URL + "/n"
txt+="Строка:" + l + "/n/n"
txt+="Нажмите "ОК", чтобы продолжить./n/n"
оповещение (текст)
вернуть истину
}
функция сообщение()
{
adddlert("Добро пожаловать, гость!")
}
</скрипт>
Обработка исключений в js
Вы можете использовать try...catch в JavaScript для обработки исключений. Например:
попробуйте { foo.bar();} catch (e) { alert(e.name + ": " + e.message);}
В настоящее время системные исключения, которые мы можем получить, в основном включают следующие 6 типов:
EvalError: возникает, когда возникает ошибка при выполнении кода в eval().
RangeError: возникает, когда числовая переменная или параметр находится за пределами допустимого диапазона.
ReferenceError: возникает при отмене ссылки на недопустимую ссылку.
SyntaxError: возникает, когда возникает синтаксическая ошибка при анализе кода в eval().
TypeError: возникает, когда переменная или параметр не является допустимым типом.
URIError: возникает, когда encodeURI() или decodeURI() передаются недопустимые параметры.
Все шесть вышеупомянутых объектов исключений наследуются от объекта Error. Все они поддерживают следующие два метода построения:
новая ошибка();новая ошибка("Информация об исключении");
Метод создания исключения вручную следующий:
Скопируйте код кода следующим образом:
пытаться {
выдать новую ошибку("Упс!");}
поймать (е) {
alert(e.name + ": " + e.message);}
Если вы хотите определить тип информации об исключении, вы можете сделать это в catch:
Скопируйте код кода следующим образом:
пытаться {
фу.бар();
} поймать (е) {
если (е экземпляр EvalError) {
alert(e.name + ":" + e.message);
} Еще если (e экземпляр RangeError) {
alert(e.name + ": " + e.message });
//и т. д
}
Ошибка имеет следующие основные свойства:
описание: Описание ошибки (доступно только в IE).
fileName: имя файла ошибки (доступно только в Mozilla).
lineNumber: количество строк с ошибкой (доступно только в Mozilla).
сообщение: сообщение об ошибке (аналогично описанию в IE)
имя: тип ошибки.
номер: код ошибки (доступно только в IE).
стек: информация о стеке ошибок, такая как трассировка стека в Java (доступна только в Mozilla).
Поэтому, чтобы лучше понять сообщение об ошибке, мы можем изменить часть catch на следующую форму:
Скопируйте код кода следующим образом:
пытаться {
фу.бар();
} поймать(е) {
если (тип браузера! = BROWSER_IE) {
alert("name: " + e.name + "message: " + e.message + "lineNumber: " + e.lineNumber + "fileName: " + e.fileName + "stack: " + e.stack);
} еще {
alert("name: " + e.name + "errorNumber: " + (e.number & 0xFFFF) + "message: " + e.message "); } } "
Команда throw в JavaScript может фактически выдать любой объект, и мы можем получить этот объект в catch. Например:
Скопируйте код кода следующим образом:
пытаться {
throw new Date(); // Выдает объект текущего времени} catch (e) { alert(e.toLocaleString()); // Используем локальный формат для отображения текущего времени
}