Исключения в javascript, следует ли мне их использовать и как?

Мне несколько раз говорили, что "плохо" использовать исключения в javascript. На самом деле мне не сказали, почему это плохо, но вместо этого я должен использовать break, continue и return.

Это нормально, за исключением того, что мне не нужно возвращать / останавливать / продолжать, мне нужно бросить. У меня есть случай, когда у меня есть функции итератора, вложенные друг в друга, каждая из которых возвращает следующее значение при вызове, поэтому я использую исключение, чтобы указать, что повторять больше нечего: кажется логичным способом сделать это, делает код чистым и отлично работает на практике. Есть ли какая-нибудь причина не использовать исключения в js?

Второй вопрос: когда я использую исключения, какие объекты мне следует бросать? Для ошибок я, очевидно, выбрасываю экземпляры Error, но для особых случаев (остановка итерации и т. Д.) Мне нужен был быстрый способ проверить эти конкретные исключения, и я просто определил пустую именованную функцию (function StopIteration () { }), и поскольку функции сравниваются по ссылке, я всегда могу проверить, является ли это моим частным случаем, или мне нужно просто выполнить повторное выполнение. Есть ли лучший или более идеальный способ сделать это в js? Должен ли я действительно попытаться реорганизовать свой код, чтобы избежать использования исключений?

Спасибо

5
задан fingerprint211b 26 May 2011 в 14:46
поделиться