Ran*_*lue 2 javascript google-chrome
此代码在Chrome上表现得很有趣(在这里小提琴):
try {
open('6:-=');
} catch(e) {}
Run Code Online (Sandbox Code Playgroud)
首先,尽管代码被包装在try-catch中,但仍会抛出错误:
无法打开包含无效网址'%36:%04- ='的窗口.
其次,在URL中插入无关的字符,即%3和%04.
为什么try-catch没有拦截错误,为什么URL有这些额外的字符?
的try/ catch没有任何影响,因为它不是一个例外.它只是打印到控制台的错误消息.你可以证明:
open('6:-=');
console.log(1); // logged as usual
Run Code Online (Sandbox Code Playgroud)
基本上,它就像console.error()不抛出异常,但它会向控制台输出类似异常的消息.