Javascript: Разница между явным выбрасыванием объекта ошибки и не - PullRequest
1 голос
/ 17 апреля 2011

В javascript я заметил два способа создания ошибки:

1)

throw "An error";

2)

throw new Error('An object error')

Есть ли преимущество выбора одного пути перед другим? Считается ли это лучшей практикой?

Спасибо

Ответы [ 2 ]

3 голосов
/ 17 апреля 2011

По сути, JavaScript неявно выбрасывает объект Error с сообщением «Error» в качестве сообщения при использовании первого метода.Если вам не нужно генерировать исключения другого типа (например, те, которые имеют различные свойства, объясняющие ошибку), метод один - это нормально.

Однако, если вы планируете генерировать более сложные исключения в будущем, вы 'Вам нужно будет использовать метод 2, так как вам нужно будет определить, какой объект вы бросаете.

По сути, для этой цели оба варианта эквивалентны.Я бы пошел с методом 2, так как он поможет вам в будущем;)

1 голос
/ 17 апреля 2011

Объект Error имеет приятные маленькие дополнения вроде error.name и (в Firefox) error.stack.

Если вам это нужно, выведите явную ошибку.Однако большинство людей просто используют метод error.toString() (часто вызываемый неявно).В последнем случае создание объекта Error в первую очередь излишне, поэтому бросание строки работает так же хорошо.

...