Javascript.RU

throw

Инициировать("бросить") исключение

Синтаксис

throw expression

Аргументы

expression
Любое выражение. Результат вычисления expression будет брошен как исключение

Описание, примеры

Используйте throw для генерации исключения, аналогично Java/PHP и другим языкам.

В отличие от них, javascript позволяет бросать исключение любого формата:

Пример: исключения
throw "Ошибка!"
throw 12
throw true
throw { 
  message: "Ошибка доступа",
  code: 403
}

Удобным соглашением является выбор для исключения объекта Error или его наследника.

function toInt(value) {
  var intVal = +value
  if (isNaN(intVal)) {
    **throw new Error("Неправильный формат данных: "+value)**
  }
}
Пример: используем toInt
try {
  var i = "something"
  i = toInt(i)
} catch(e) {
  alert(e.message)
}

Запустить пример


Автор: B@rmaley.e><e, дата: 26 января, 2010 - 19:26
#permalink

Парсер не обрабатывает примеры.


Автор: Илья Кантор, дата: 26 января, 2010 - 23:31
#permalink

Поправил, спасибо.


Автор: Гость (не зарегистрирован), дата: 3 ноября, 2012 - 21:05
#permalink

Судя по всему ошибка в примере "используем toInt"

**throw new Error("Неправильный формат данных: "+value)**

Автор: Гость (не зарегистрирован), дата: 18 февраля, 2013 - 10:43
#permalink

а звездочки на хрена ?
чтобы те кто не знает js и дальше его не знал?


Автор: Гость (не зарегистрирован), дата: 25 марта, 2014 - 19:36
#permalink

Чтоб те, кто знают C/C++ охеревали


Автор: Javascript Guru (не зарегистрирован), дата: 5 сентября, 2014 - 12:49
#permalink

автор, удалите звездочки и расставьте семиколоны, неговоря уже про то что функция не возвращает int, ну и для float не прокатит.

Правильный кусочек

function toInt(value) {
  var intVal = +value;
  if (isNaN(intVal)) {
      throw new Error("Неправильный формат данных: " + value);
  }
}

Автор: Destr (не зарегистрирован), дата: 16 сентября, 2014 - 14:36
#permalink
function getXmlHttp(){
	try {
		return (getXmlHttp = function() {
			return new XMLHttpRequest();
		})();
	} catch (e) {}
	try {
		return (getXmlHttp = function() {
			return new ActiveXObject("Msxml2.XMLHTTP");
		})();
	} catch (e) {}
	try {
		return (getXmlHttp = function() {
			return new ActiveXObject("Microsoft.XMLHTTP");
		})();
	} catch (e) {}
	throw new Error("XmlHttp");
};

function syncAjax(method, uri, body) {
	var req = getXmlHttp();
	req.open(method, uri, false);
	req.send(body);
	return req.responseText;
};
		
function doNothing(){};
function ajax(method, uri, body, callback) {
	var req = getXmlHttp();
	var container = {rady:false, data:null};
	req.onreadystatechange = function() {
		if (req.readyState == 4) {
			if(req.status == 200) {
				container.data = req.responseText;
				container.rady = true;
				(callback||doNothing)(req.responseText);
			}
		}
	};
	
	req.open(method, uri, true);
	req.send(body);
	return container;
};
		
window.onload = function() {
	ajax("GET", "foo.html", null, function(msg){
		alert(msg);
	});
	
	alert(syncAjax("GET", "foo.html", null));
};

Автор: Destr (не зарегистрирован), дата: 16 сентября, 2014 - 14:42
#permalink

даже лучше убрать container


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
1 + 1 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Реклама
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum