Консультация № 69058
29.12.2006, 17:55
0.00 руб.
0 2 2
Здравствуйте!

возможно ли у java script написать обработчик собственных ошибок:
Какие команды есть для работы с ошибками и отладкой?
Может есть уже готовый скрипт?

Обсуждение

Неизвестный
29.12.2006, 18:53
общий
это ответ
Здравствуйте, Талипов А Н!
Посмотрите вот здесь, в разделе Scripting Event Handlers: http://wp.netscape.com/eng/mozilla/3.0/handbook/javascript/getstart.htm#1004263

Удачи!
Неизвестный
29.12.2006, 22:24
общий
это ответ
Здравствуйте, Талипов А Н!
Примеры в приложении (если что не понятно - пишите).
1. catch - обработчик ошибки. В качестве параметра получает массив, содержащий информацию об ошибки, которая произошла внутри try.
У каждого браузера свои описания ошибки и элементы массива разные.
2. Ещё есть такое понятие как throw - бросок.
С помощью него, Вы можете более точно обрабатывать ошибки.
Параметр может являться строкой, целым числом, булевым или объектом.
Смотрите код, ничего сложного, думаю, всё понятно.
3. Обработка события onerror. Тут тоже ничего сложного.
К сожалению, Opera не поддерживает это событие (возможно, в 9-ой версии исправили).

Если Вам нужно просто отлаживать код, то лучше всего скачать JavaScript дебаггеры.
Для Firefox существуют расширения, которые могут отлаживать javascript код или которые выдают информацию об ошибке.
Например:
FireBug: https://addons.mozilla.org/firefox/1843/
JavaScript Debugger: https://addons.mozilla.org/firefox/216/
Console²: https://addons.mozilla.org/firefox/1815/
DebugLogger: https://addons.mozilla.org/firefox/3983/
У Firefox есть стандартная Консоль ошибок (Инструменты -> Консоль ошибок).

Просто программы - дебаггеры:
JavaScript Editor: http://www.yaldex.com/
Aptana: http://www.aptana.com/index.php
SplineTech JavaScript Debugger for HTML DHTML: http://www.downloadjunction.com/product/store/23164/index.html
http://www.downloadjunction.com/product/store/25982/index.html
JavaScript&DOM Factory: http://www.zvon.org/xxl/JSDOMFactory/
Есть ещё Visual Studio 2005, отличный debugger, но только для javascript качать не стоит.

Удачи!

Приложение:
//------- 1 -------//<script type="text/javascript">try { alerttt("test");}catch(e) { var txt; for(var key in e) txt += key + ‘ - ‘ + e[key] + ‘\n‘; alert(txt);}</script>//------- 2 -------//<script type="text/javascript">try { var n = new Number(Math.random(10)*10); if(n < 4) throw(‘error_1‘); if(n > 6) throw(‘error_2‘); if(n >= 4 && n <= 6) alert(‘Successful‘);}catch(e) { switch(e) { case ‘error_1‘: alert(‘Error: n < 4‘); break; case ‘error_2‘: alert(‘Error: n > 6‘); break; }}</script>//------- 3 -------//<script type="text/javascript">window.onerror = handleErr;function handleErr(msg, url, l) { var txt; txt += ‘Error: ‘ + msg + ‘\n‘; txt += ‘URL: ‘ + url + ‘\n‘; txt += ‘Line: ‘ + l + ‘\n‘; alert(txt); return true;}alerttt(‘test‘);</script>
Форма ответа