为什么 ExtendScript 不对无效的 XML 字符串抛出错误?

Why doesn't ExtendScript throw an error on invalid XML string?

我现在正在使用 XML 和 ExtendScript 进行一些开发。我不确定我是否理解为什么当我 运行 以下脚本时,ESTK 不会抛出错误:

var random_string = "asdsfjlkj";

try {
  testXML = new XML(random_string);
} catch (err) {
  $.writeln("There was an error creating an XML object:" + err);
}

我希望 $.writeln 字符串出现在 ESTK 的控制台中,但它没有。相反,我只得到 Result: undefined。根据 Adob​​e 的 Javascript 工具指南第 246 页:

If a valid string is supplied, returns a new XML object encapsulating the XML code. If the XML code cannot be parsed, throws a JavaScript error. If an existing object is supplied and the new operator is used, returns a copy of the object; otherwise, returns the object itself.

我想我的问题是 new XML() 方法实际上会抛出什么样的字符串?

语法x = new XML (y);是创建一个XML类型的新对象x,初始值为y,其中y必须形成valid XML.

的字符串表示

来自 ESTK 帮助:

XML XML (text: string)
Parses an XML string. Throws an error if the XML is incorrect.

因此,以下将全部失败:

Ziki 的 <asdf:"There was an error creating an XML object:SyntaxError: XML error in line 1 - Unclosed token"

<abc a='1>: ".. - 未关闭的令牌"

<abc a=1>:“.. - 格式不正确(无效标记)”

<123>:“.. - 格式不正确(无效标记)”

<abcd><b></abcd>:“.. - 标签不匹配”

<?xml verson="1.0"?><abc>: ".. - 语法错误"(这里,verson 需要是 version

还有这些(每一行都是一个单独的输入字符串)没问题:

abcd>
<abcd>
<abcd><a> (this automatically gets expanded to <abcd><a/></abcd>)
<abc a="1">