Нет такого понятия, как «предупреждение». Когда вы бросаете объект (и вы можете бросить в значительной степени что угодно ), это исключение, которое либо поймано, либо нет.
Возможно, вы могли бы добиться эффекта предупреждения, убедившись, что ваш код перехватывает исключения, возникающие внутри вашего кода, как-то ища объекты "предупреждения" (по типу или по типу утки).
edit За последние годы это привело к снижению рейтинга, поэтому я остановлюсь на ответе. ОП явно спросил «Могу ли я также выдать предупреждение?» Ответ на этот вопрос может быть «да», если у вас есть конструктор «Предупреждение»:
function Warning(msg) {
this.msg = msg;
}
Тогда вы, конечно, можете сделать
if (somethingIsWrong())
throw new Warning("Something is wrong!");
Конечно, это сработает, но не сильно отличается от
if (somethingIsWrong())
throw "Something is wrong!";
Когда вы бросаете вещи, они могут быть чем угодно, но полезные вещи, которые нужно выбросить, являются экземплярами Error, потому что они идут с трассировкой стека. В любом случае, будет либо оператор catch
, либо его нет, но сам браузер не позаботится о том, чтобы ваш брошенный объект был экземпляром Warning
.
Как указывалось в других ответах, если цель real просто влияет на вывод консоли, то console.warn()
является правильным, но, конечно, это не совсем сравнимо с бросанием чего-либо; это просто сообщение журнала. Выполнение продолжается, и если последующий код не может справиться с ситуацией, которая вызвала предупреждение, он все равно потерпит неудачу.