JavaScript的Try Catch用于本地存储检测

5

我正在研究有关本地存储的Dive Into HTML 5教程,并找到了以下代码:

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

我理解了关于return 'localStorage' in window的部分,但是我不明白为什么要在这里使用try catch语句?难道简单地写以下内容不就足够了吗?

function supports_html5_storage(){
return 'localStorage' in window && window['localStorage']!==null;
}

顺便说一下:我(有点)知道try/catch的用途,只是想知道可能会发生什么样的异常?


兄弟...你应该阅读一下你发布的代码周围的几行内容... - Denys Séguret
1
哦,天啊,难以置信……我错过了那一行!结果是个愚蠢的问题。对此我深感抱歉。尽管如此,还是感谢大家的贡献。干杯! - anthonytwp
1个回答

8
如果您的浏览器支持HTML5存储,全局窗口对象上将有一个localStorage属性。如果您的浏览器不支持HTML5存储,则localStorage属性将未定义。由于旧版本Firefox中的一个不幸的错误,如果禁用了cookie,则此测试将引发异常,因此整个测试都包含在try..catch语句中。
上述文本摘自:http://diveintohtml5.info/detect.html#storage

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接