EvalError --- Создает экземпляр, представляющий ошибку, которая возникает в отношении глобальной функции eval ().
InternalError --- Создает экземпляр, представляющий ошибку, которая возникает при возникновении внутренней ошибки в механизме JavaScript. Например, "слишком много рекурсии".
RangeError --- Создает экземпляр, представляющий ошибку, которая возникает, когда числовая переменная или параметр выходит за пределы допустимого диапазона.
ReferenceError --- Создает экземпляр, представляющий ошибку, которая возникает при разыменовании недействительной ссылки.
Ошибка синтаксиса --- Создает экземпляр, представляющий синтаксическую ошибку, которая возникает при синтаксическом анализе кода в eval ().
TypeError --- Создает экземпляр, представляющий ошибку, которая возникает, когда переменная или параметр недопустимого типа.
URIError --- Создает экземпляр, представляющий ошибку, которая возникает, когда encodeURI () или decodeURI () передают недопустимые параметры.
RangeError
. Вы должны определить пользовательские типы или простоthrow new Error("<message>");
?Соглашение для вне диапазона в JavaScript использует
RangeError
. Для проверки типа используйте if / else +,instanceof
начиная с наиболее специфичного для наиболее общегоисточник
else { throw; }
сюдаПростое решение для отправки и показа сообщения путем исключения.
предосторожность
Выше это не решение, если мы не знаем, какую ошибку можно выдать из блока. В таких случаях следует использовать средства защиты типов и правильно обрабатывать ошибки - взгляните на ответ @Moriarty.
источник
<Error>
- сообщить компилятору TS, чтоe
здесь тип,<Error>
так что у вас есть (1) intellisense и (2) лучшая проверка типов. Имейте в виду, что любой актерский состав вообще не переводится в JS и является чисто синтаксическим сахаром.Не забудьте про операторы switch:
default
.instanceof
может соответствовать по суперклассу.constructor
будет соответствовать точному классу.источник