在代码的运行过程中,问题时有发生;如何优雅的处理的这些错误,现的很重要。总体来说问题分为2大类:
系统级错误,简称为error,如语法错误;应用级错误简称为exception,如用户输入的数值不合法等。如何当
前代码不能处理此问题,则应该把此问题从当前运行环境中跳出,并把它交给上一级环境处理。这就用到了
try{}catch(){}异常处理。
问题的相关信息被封装到一个对象里。在javascript中,常用Error对象来保存有关错误的信息。
为了区别系统级错误和应用级错误,给Error错误增加type属性(error/exception)。
示例代码如下:
<script language="javascript">
function errorTest(){
try{
var s;
alert(s.toString());
}catch(e){
var error=new Error();
error["type"]="error";
error["number"]="110";
error["description"]=e["description"]
throw error;
}
}
function exceptionTest(i){
try{
if(parseInt(i)>0)
{
var exception=new Error();
exception["description"]="不能大于0";
throw exception;
}
}catch(e){
var exception=new Error();
exception["description"]=e["description"];
exception["type"]="exception";
exception["number"]="120";
throw exception;
}
}
function test1(){
try{
errorTest();
}catch(e){
if(e["type"]=="error"){
alert("系统级错误!");
}else{
alert("应用级错误!");
}
}
}
function test2(){
try{
exceptionTest(1);
}catch(e){
if(e["type"]=="error"){
alert("系统级错误!");
}else{
alert("应用级错误!");
}
}
}
test1();
test2();
</script>
以上代码比较简单,但是在代码比较复杂的情况下,可以根据具体情况完善。用此异常框架处理起来流程比较清晰。