2015-10-19 2 views
1

Что такое proc и минусы использования пользовательских кодов ошибок в сравнении с использованием пользовательских подклассов Error в NodeJS?Обработка ошибок NodeJS - с использованием кодов ошибок или подклассов

На языке Java или Python я бы использовал подклассы, потому что мог обрабатывать его в разных блоках catch. Однако при написании JavaScript отдельный подкласс Error для каждого точного случая ошибки выглядит излишним для меня, насколько вы не можете его использовать, с помощью блока catch без использования оператора instanceof. Кстати, throw - это не обычный способ передать ошибку в NodeJS тоже (я имею в виду стиль обратных вызовов с ошибкой). Итак, в конце концов, я решил придерживаться одного пользовательского класса (унаследованного от Error) для всех ошибок проекта. Однако теперь я должен ввести много разных кодов ошибок. И мне интересно - это регулярный поток для устранения ошибок в NodeJS?

ответ

0

Создание объекта Error для сообщений об ошибках позволяет указать дополнительные вещи, которые могут иметь отношение к самой ошибке. Учитывайте следующее:

var e = new Error("An error message"); 
e.status = "TERMINATED"; 
e.exit_code = 127: 

Объект Error - это еще один объект javascript, поэтому добавление его свойств действительно. Кроме того, у вас также есть некоторые полезные вещи для отслеживания сообщений об ошибках, таких как «e.stack», чтобы увидеть, как выглядел стек, когда был создан объект ошибки. Дополнительные свойства объекта Error см. В разделе this website.

Почему вы не создаете фабрику ошибок «класс», которая создает объекты Error с добавленным «кодом ошибки», который вам нужен? Вы всегда можете проверить, была ли ошибка, которую вы поймали, была создана на заводе, если у нее есть какие-либо свойства, с которыми вы дополняете объект.

Смежные вопросы