javascript被捕捉后还会再上古卷轴5控制台台显示么?

转载:全面介绍javascript异常处理(try…catch…finally window.onerror)_小组_ThinkSAAS
转载:全面介绍javascript异常处理(try…catch…finally window.onerror)
转载:全面介绍javascript异常处理(try…catch…finally window.onerror)
转载:全面介绍javascript异常处理(try…catch…finally window.onerror)
try catch finally 语句说明
try catch finally是javascript语言提供的异常处理机制。语法结构如下
//这段代码从上往下运行,其中任何一个语句抛出异常该代码块就结束运行
catch (e) {
// 如果try代码块中抛出了异常,catch代码块中的代码就会被执行。
//e是一个局部变量,用来指向Error对象或者其他抛出的对象
//无论try中代码是否有异常抛出(甚至是try代码块中有return语句),finally代码块中始终会被执行。
try…catch…finally…语法中除了try以外catch和finally都是可选的(两者必须要有一个),也就是说try…catch…finally…语法有以下三种形式
//some code
}catch(e){
//somecode
//some code
//some code
}catch(e){
//somecode
//some code
//some code
如果有一定catch,一旦try中代码抛出异常以后就是先执行catch中的代码,然后执行finally中的代码。如果没有catch语句,try中的代码抛出异常后,就会先执行finally中的语句,然后将try中抛出的异常以异常的方式继续往上抛。
不管try代码块的执行时如何被终止的(出现异常、return、自然终止)finally中的语句始终会被执行,正是由于finally的这种特性,通常finally用来执行一些清理工作。如果try中代码是以return,continue,break的方式终止的,Javascript引擎会在执行完finally中的语句以后再执行相应的try中的返回语句。
throw语句说明
throw语句在javascript1.4中已经实现。try的语法很简单,如下
其中的expression可以是任何一种类型,也就是说throw “There is a error” 或是throw 1001都是正确的。但通常我们会抛出一个Error对象或是Error对象的子类。关于Error我们稍后介绍,先看一段throw的样例代码。
function factorial(x) {
// If the input argument is invalid, throw an exception!
if (x & 0) throw new Error("x must not be negative");
// Otherwise, compute a value and return normally
for(var f = 1; x & 1; f *= x, x--)
Error对象和它的子类是在javascript1.5中实现的。Error的构造函数有两种
new Error( )
new Error(message )
Error有两个基本的属性name和message。message用来表示异常的详细信息。而name指的的是Error对象的构造函数。此外,不同的js引擎对Error还各自提供了一些扩展,例如mozilla提供了fileName(异常出现的文件名称)和linenumber(异常出现的行号)的扩展,而IE提供了number(错误号)的支持。不过name和message是两个基本的属性,在firefox和ie中都能够支持。Javascript中Error还有几个子类EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError,各自的意思就不在这里详细描述了,读者可以在我提供的参考文档中找到相应的参考。
Javascript的异常处理机制和window.onerror句柄
当javascript代码中出现错误的时候,js引擎就会根据js的调用栈逐级寻找对应的catch,如果没有找到相应的catch handler或catch handler本身又有error或者又抛出新的error,最后就会把这个error的处理交给浏览器,浏览器会用各自不同的方式(IE以黄色三角图案显示在左下角,而firefix会显示在错误控制台中)显示错误信息给访问者。很多场景下,我们会觉得这种错误提示方式不够友好,而且提示信息很隐蔽,那么我们机会自定义这种错误提示的方式吗?答案是有,就是window.onerror属性。
javascript的window对象有一个特别的属性onerror,如果你将某个function赋值给window的onerror属性,那么但凡这个window中有javascript错误出现,该function都会被调用,也就是说这个function会成为这个window的错误处理句柄。
// Display error messages in a dialog box, but never more than 3
window.onerror = function(msg, url, line) {
if (onerror.num++ & onerror.max) {
alert("ERROR:"+ msg +"n"+ url +":"+ line);
onerror.max = 3;
onerror.num = 0;
onerror句柄会3个参数分别是错误信息提示,产生错误的javascript的document ulr,错误出现的行号。
onerroe句柄的返回值也很重要,如果句柄返回true,表示浏览器无需在对该错误做额外的处理,也就是说浏览器不需要再显示错误信息。而如果返回的是false,浏览器还是会提示错误信息。
window.onerror=function(){
alert(”xx”);
//如果注释掉该语句,浏览器中还是会有错误提示,反之则没有。
function throwerror(){
throw new Error(”cc”);
我们在开发HTML的过程中避免不了一些Js的异常,通常我们也不可能依赖客户打开浏览器的错误提示框(如上图)来为我们定位bug提供线索,而利用window.onerror句柄我们就可以讲错误提示信息显示出来,客户只要在错误出现的时候,提供相应的截屏就可以了,这点可以很好的帮助开发人员定位,分析javascript相关的错误。
可见,IE 和 Firefox 提供了对 window.onerror 事件的支持,当页面内的 JavaScript 脚本出现错误时,window.onerror 被触发。
标准中的说法
W3C HTML4.01 规范第 18.2.3 节介绍了 HTML 中的固有事件(Intrinsic events),其中并没有 onerror 事件。
在 HTML5 规范草案中描述了 window 对象的事件处理程序,其中有 onerror 事件存在,详细情况请参照草案说明:6.1.6.2 Event handlers on elements。可见,各浏览器还没有统一此实现。
根据 MSDN 及 Mozilla Developer Center 中的描述,当页面中的脚本出错的时候就会触发 window.onerror 事件,这个事件的监听器(event handler)拥有三个参数:msg(错误消息内容)、url(发生错误的页面的 URL)、line(发生错误的代码所在行行号)。
而浏览器是否按照其默认方式显示错误消息,取决于 onerror 事件的返回值。若返回 false,则在浏览器控制台(若有)中显示错误消息。反之则不再显示错误消息。
可见,对window.error的支持差异来自标准自身的不一致性,HTML5可解决这个问题。
所以,还是放弃使用window.onerror吧,使用try-catch捕捉错误是比较标准的做法。
用户评论(0)
开发技术学习小组列表
PHP开发框架
缓存Memcache
服务器环境
ThinkSAAS商业授权:
ThinkSAAS为用户提供有偿个性定制开发服务
ThinkSAAS将为商业授权用户提供二次开发指导和技术支持
手机客户端
ThinkSAAS接收任何功能的Iphone(IOS)和Android手机的客户端定制开发服务
让ThinkSAAS更好,把建议拿来。
iphone扫码下载客户端script控制
我们正在努力的为您加载...稍后更精彩
市场价¥68.00折扣7.1折节省20.00已有972人购买数量有限,赶快下单吧!
市场价¥198.00折扣3.9折节省120.00已有773人购买数量有限,赶快下单吧!
市场价¥960.00折扣3.3折节省640.00已有704人购买数量有限,赶快下单吧!
市场价¥116.00折扣5.0折节省58.00已有369人购买数量有限,赶快下单吧!
市场价¥89.00折扣5.5折节省40.00已有194人购买数量有限,赶快下单吧!
市场价¥368.00折扣9.9折节省3.00已有107人购买数量有限,赶快下单吧!
市场价¥5.00折扣10.0折节省0.00已有56人购买数量有限,赶快下单吧!
市场价¥150.00折扣4.0折节省90.00已有45人购买数量有限,赶快下单吧!
市场价¥61.00折扣9.4折节省3.50已有44人购买数量有限,赶快下单吧!
市场价¥7.80折扣10.0折节省0.00已有37人购买数量有限,赶快下单吧!
市场价¥28.00折扣10.0折节省0.00已有29人购买数量有限,赶快下单吧!
市场价¥1300.00折扣10.0折节省0.00已有28人购买数量有限,赶快下单吧!
市场价¥0.49折扣10.0折节省0.00已有23人购买数量有限,赶快下单吧!
市场价¥3.50折扣10.0折节省0.00已有15人购买数量有限,赶快下单吧!
市场价¥199.00折扣4.4折节省111.00已有14人购买数量有限,赶快下单吧!
市场价¥0.60折扣10.0折节省0.00已有14人购买数量有限,赶快下单吧!
市场价¥295.00折扣10.0折节省0.00已有12人购买数量有限,赶快下单吧!
市场价¥52.00折扣10.0折节省0.00已有11人购买数量有限,赶快下单吧!
市场价¥16.00折扣10.0折节省0.00已有11人购买数量有限,赶快下单吧!
市场价¥29.80折扣7.5折节省7.50已有10人购买数量有限,赶快下单吧!
相关文章推荐
script控制-世界之窗浏览器极速版的javascript控制台是干什么的-玩客达人分享你的热爱
世界之窗浏览器极速版的javascript控制台是干什么的
用来查看网页脚本错误的
上古5控制台出现scriptcommandplayernotfound是怎么弄
这个不是你的密码错了,你在呼出控制台之后,一定要先鼠标点击自己的人物一下,密码之前的PLAYER不用打了
上古卷轴5控制台mod代码显示compiledscriptnotsaved,我是
光用NMM载入是没用的,还要NMM在里面将mod排序之后才能用例如你的mod排在03就把XX改为03例:player.additem
安装groovy为什么运行没有GroovyScript选项
你最好安装grails,配置好环境变量,然后grailsconsole就会出现groovyscript控制台
《上古卷轴5》控制台出compiledscriptnotsaved
练技能有很多窍门,到100不是太难的事警告:用控制台改完了技能等级数一定要记得改回原来的数字。比如你锻造10想做把好刀你可以控制台锻造到1000做完神器后要控制
ActionScript3.0能不能控制Flash的某几个图层的状态,使其中几
一个flash只有一个帧频率,回答完毕。
上古卷轴5控制台输入代码显示compiledscriptnotsaved
你输入:player.addperk000c44be就行了。后面那串冒号和英文不用输入
flash动作脚本可以实现动画的播放控制和交互功能吗
可以的。就是做这个用的。flash教程一开始就是教你如何用actionscript控制这些东西。
请介绍一下DynamicHTML
还可以通过Script程序来改变这些属性。传统网页的内容与样式编排,在下载到浏览器后,即使固定的,相比之下,以CSS定义的样式网页,只要通过Script控制,网页就算已经下载显示
请问HTML.XML..VRML.的区别
还可以通过Script程序来改变这些属性。传统网页的内容与样式编排,在下载到浏览器后,是固定的,相比之下,以CSS定义的样式网页,只要通过Script控制,网页就算已经下载显示来
买就要买真品,script控制-世界之窗浏览器极速版的javascript控制台是干什么的-玩客达人分享你的热爱。是一种服务器端脚本语言,用来开发动态web应用程序。与相比,没有一个好的服务器端调试工具是其限制之一。通常我们都是在PHP代码中添加echo、var_dump等语句,将变量、数组的值显示在浏览器中来达到调试的目的。现在,越来越多的浏览器都有了开发这工具或者控制台,通过这些工具,我们可以很方便的显示PHP代码中的变量或数组值。下面我们来做一个例子。例子中的PHP代码有四个跟踪级别:info, warn, log, error,开发人员可以使用浏览器控制台来显示错误变量,数组值。将下面代码拷贝到PHP文件中,并保存为WebConsole.php&?phpclass WebConsole {
private static function write($data, $type = 'info') {
$method_types = array('error', 'info', 'log', 'warn');
$msg_type = '';(PS:T不错的PHP Q扣峮:,验证:csl)
if(in_array($type, $method_types)) {
$msg_type = sprintf(&console.%s&, $type);
$msg_type = sprintf(&console.%s&, 'info');
if(is_array($data)) {
echo(&&script&$msg_type('&.implode(', ', $data).&');&/script&&);
echo(&&script&$msg_type('&.$data.&');&/script&&);
public static function info($data) {
self::write($data);
public static function error($data) {
self::write($data, 'error');
public static function log($data) {
self::write($data, 'log');
public static function warn($data) {
self::write($data, 'warn');
}?&现在,导入WebConsole类,并使用跟踪功能。&?php
require_once('WebConsole.php');
$fruits = array('apple', 'mange', 'banana');
WebConsole::log($fruits);
WebConsole::info($fruits);
WebConsole::warn($fruits);
WebConsole::error($fruits);?&现在打开你的浏览器控制台,你会发现出现类似下面的屏幕截图:以上是本文关于利用浏览器的Javascript控制台调试PHP程序的详细叙述,希望本文对广大php开发者有所帮助,感谢您阅读本文。

我要回帖

更多关于 上古卷轴5控制台 的文章

 

随机推荐