Javascript尝试捕获Localstorage Detection

ant*_*twp 3 javascript try-catch

我正在研究关于本地存储的Dive Into HTML 5教程,并且遇到了这段代码:

function supports_html5_storage() {
  try {
return 'localStorage' in window && window['localStorage'] !== null;
  } catch (e) {
return false;
  }
}
Run Code Online (Sandbox Code Playgroud)

我理解关于return 'localStorage' in window等等的部分,但我不明白为什么需要在这里尝试catch语句?简单地写下面的内容是不够的?

function supports_html5_storage(){
return 'localStorage' in window && window['localStorage']!==null;
}
Run Code Online (Sandbox Code Playgroud)

顺便说一下:我(有点)知道try/catch的目的,我只是想知道我们可能期待什么样的异常?

Sim*_*ang 5

如果您的浏览器支持HTML5存储,则全局窗口对象上将有一个localStorage属性.如果您的浏览器不支持HTML5存储,则localStorage属性将是未定义的.由于旧版Firefox中存在一个不幸的错误,如果禁用cookie,此测试将引发异常,因此整个测试都包含在try..catch语句中.

以上文字复制自:http://diveintohtml5.info/detect.html#storage