- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
js异常处理
这两天看了js的异常处理结构和现有的代码,总结了一些经验。
js的异常处理机制和java的类似的,可以自动向调用函数抛出。
目前有两种方案
?
方案一:借助window.onerror事件
这个方法可以避免在每个函数中使用try{}catch{},但是在目前的试验中这个方法有一点非常奇怪的bug,不知道是什么原理。
如下代码:
window.onerror=fnErrorTrap;function fnErrorTrap(msg,url,line){?oErrorLog.innerHTML=bAn error was thrown and caught./bp;?oErrorLog.innerHTML+=Error: + msg + br;?oErrorLog.innerHTML+=Line: + line + br;?oErrorLog.innerHTML+=URL: + url + br;
?alert(window.onerror.caller);??? return true;}
?
方案二:使用try{}catch{}主法
使用原则是在每个事件中使用,因为目前的代码都是事件驱动的,在事件函数中catch后就不要再抛出异常,在catch中调用异常信息的
统一处理(还未定义)。
此外,在事件驱动的函数中我们有可能会调用别的函数(如fun1),在fun1的可以不捕捉任何异常,如果使用了try catch,应该抛出一个
封装的异常。
如下
try{}
catch(e){
throw new Error(my error);
}
?
大家先看一看,有什么不懂的可以问我,过两天会出一个更细的方案。
}catch(e){}的方式
使用的原则是:
在每个事件触发的函数中使用try{}catch{}如下:
try {
fun1();
fun2();
…….
} catch(e) {
Log.error(e.message);
}
在事件函数中被调用的函数fun1()中可以不使用try{}catch(){},如果有使用try{}catch(){},则必须按如下方式
try{}
catch(e){
throw new Error(my error);
}
3.在pubjs/commonjs/下新增public.js文件,必须包含该文件在页面上。
SCRIPT src=../pubjs/commonjs/public.js/SCRIPT
public.js中包含一个Log的类,默让会使用error的级别,只显示level为error的错误。就象log4j一样,提供了Log.error(message,lbl),Log.debug(message,lbl)两组方法,可以通过设置等级,关闭提示信息的范围。第二个参数是一个Label或Span或Div对象,可以把错误或调试的信息设置在上面,默认可不传,将采用alert()的方式提示信息。
提示信息的格式是:
页面路径::9080/main.jsp
调用函数:(只能取到最后调用Log方法的函数)
错误信息:
设置等级:Log.level = “error”;(“debug”,”normal”);
如设为debug将会把所有Log.error(),Log.debug()的显示都提示出来。
如设为normal将关闭所有提示信息。
如设为error将只显示Log.error()的信息。
建议在catch(){}块中使用Log.error()方法,其它地方使用debug,以便关闭不必要的调试信息。
说明:Error对象包含有四个固有的属性(name,number,message,description),其中message和description指向相同的信息,其中descriptiong是为了向后兼容而保留的,message是符合ECMA标准的。
下面是古文鉴赏,不需要的朋友可以下载后编辑删除!!谢谢!!
九歌·湘君?屈原??朗诵:路英君不行兮夷犹,蹇谁留兮中洲。?美要眇兮宜修,沛吾乘兮桂舟。?令沅湘兮无波,使江水兮安流。?望夫君兮未来,吹参差兮谁思。?驾飞龙兮北征,邅吾道兮洞庭。?薜荔柏兮蕙绸,荪桡兮兰旌。?望涔阳兮极浦,横大江兮扬灵。?扬灵兮未极,女婵媛兮为余太息。?横流涕兮潺湲,隐思君兮陫侧。?桂棹兮兰枻,斫冰兮积雪。?采薜荔兮水中,搴芙蓉兮木末。?心不同兮媒劳,恩不甚兮轻绝。?石濑兮浅浅,飞龙兮翩翩。?交不忠兮怨长,期不信兮告余以不闲。?朝骋骛兮江皋,夕弭节兮北渚。她含着笑,切着冰屑悉索的萝卜,??她含着笑,用手掏着猪吃的麦糟,??她含着笑,扇着炖肉的炉子的火,??她含着笑,背了团箕到广场上去??晒好那些大豆
原创力文档


文档评论(0)