Можно ли вручную выдать ошибку DOMException в чистом JavaScript? Документация, которую я прочитал , предполагает, что ее относительно легко построить (по крайней мере, в Java.)
Однако в Chrome следующий код возвращает TypeError: Illegal constructor
:
// DOM SYNTAX_ERR (12)
var myDOMException = new DOMException(12,"I'm sorry Dave, I'm afraid I can't do that.");
К сожалению, это то, что я ожидал после прочтения документов W3 , которые вообще не указывают конструктор.(В качестве отступления, хотя я не особо разбираюсь в IDL, я бы предположил, что их вариант будет поддерживать спецификацию конструкторов.)
К сожалению, класс DOMException скрытно присутствует в глобальной области видимости.Как я могу использовать это? Может Я использую это?
Обновление
С тех пор как я написал это, я сделал несколько открытий, а именно:
var myDOMException = DOMException.constructor(12,"Error Message");
var myDOMException2 = DOMException.constructor.call(DOMException,DOMException.SYNTAX_ERR,"Error Message");
Похоже, что это сработало!
... не так быстро.
$> myDOMException instanceof DOMException
false
$> myDOMException2 instanceof DOMException
false
И, возможно, еще больше:
$> myDOMException.constructor
function Number() {
[native code]
}
Как всегда,любая помощь будет принята с благодарностью.
Обновление # 2
Просто чтобы уточнить мои причины для возврата объекта DOMException в отличие от более общей ошибки - я пытаюсьреализовать спецификацию WHATWG Timed Text Track в чистом JavaScript.В ряде случаев требуется правильное решение для возврата объекта DOMException, в частности, с кодом 12 (SYNTAX_ERR.)