码迷,mamicode.com
首页 > Web开发 > 详细

js-异常处理语句

时间:2016-07-30 16:47:32      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:

程序运行过程中难免会出错,出错后的运行结果往往是不正确的,因此运行时出错的程序通常被强制中止。运行时的错误统称为异常,为了能在错误发生时得到一个处理的机会,JavaScript提供了异常处理语句。包含try-catch、try-catch-finally和throw.

一、try-catch语句

try{

tryStatements
}
catch(exception){
catchStatements
}
    参数说明:
    tryStatements:必选项。可能发生错误的语句序列。
    exception:必选项。任何变量名,用于引用错误发生时的错误对象。
    catchStatements:可选项。错误处理语句,用于处理tryStatements中发生的错误。
    编码时通常将可能发生错误的语句写入try块的花括号中,并在其后的catch块中处理错误。错误信息包含在一个错误对象(Error对象)里,通过exception的引用可以访问该对象。根据错误对象中的错误信息以确定如果处理。
<script type="text/javascript">
  try{
    var n = error; //人为引发一个错误,error未定义就使用
  }
  catch(e){
    alert((e.number&0xFFFF) + "号错误:" + e.description); //错误处理:仅输出错误信息
  }
</script>

    该代码段使用了一个try-catch结构处理程序运行时错误,第4行人为引发一个错误。第6~9行的catch块捕捉错误并处理。
提示:JavaScript的错误为运行时错误和语法错误,语法错误在编译阶段发现;而运行时错误在运行过程中发现,错误处理语句仅能处理运行时错误。

二、try-catch-finally语句

try{

tryStatements;
}
catch( exception ){
handleStatements;
}
finally{
fianllyStatements;
}

     参数说明:
    tryStatements:必选项,可能引发异常的语句。
    handleStatements:可选项,异常处理语句。
    fianllyStatements:可选项,在其他过程执行结束后无条件执行的语句。
    尽管没有错误发生finally块中的语句也会在最后得到执行,通常在此放置资源清理的程序代码。

<script type="text/javascript">
  try{
    var fruit = new Array("鸭梨","苹果","葡萄","李子"); 
    for( n=0;n<fruit.length;m++)
    {
      document.write(fruit[n] + "");
    }
  }
  catch( e )
  {
    alert( (e.number&0xFFFF) + "号错误:" + e.description );
  }
  finally{
    fruit = null;
    alert("fruit="+fruit+"已经断开fruit数组的引用!");
  }
</script>

 三、throw

<body>
		用户名<input type="text"  id="txt"  /><br />
		<input type="button" id="btn" value="按钮" onclick="demo()" />	
	
		<script type="text/javascript">
			function demo(){
				try{
					var e=document.getElementById("txt").value;
					if(e==""){
						throw "您的用户名输入为空!";
					}
				}catch (err){
					alert(err);
				}
			}
		</script>
</body>

 

 

 

js-异常处理语句

标签:

原文地址:http://www.cnblogs.com/foodoir/p/5720752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!