2014-03-18 75 views
0

Web开发者n00b在这里。我想测试我的JavaScript函数decryptStr在身体像这样:Google Chrome浏览器JavaScript控制台告诉我“未捕获....”

<script type="text/javascript"> 
    var str = "010510160"; 
    document.write(decryptStr(str)); 
</script> 

我跑它在谷歌Chrome和JavaScript控制台说,

未捕获输入不正确;无法解密。

我对这意味着什么感到困惑。任何想法是什么问题在这里? “不正确的单元;不能解密”是对应于错误类型的字符串下面的函数应该在事件以捕获输入的字符串是适当形式的不:

function decryptStr(thisString) 
    { 
     var decryptInputError = "Improper input; cannot decrypt."; 
     thisString.trim(); 
     var retString = ""; 
     for (var i = 0, j = thisString.length; i < j; ++i) 
     { 
      var thisChar = thisString.charAt(i); 
      if (thisChar > '9' || thisChar < '0') 
      { 
       throw decryptInputError; 
       return; 
      } 
      else if (thisChar > '1' && thisChar < '10') 
      { 
       var nextChar = thisString.charAt(i+1); 
       if (nextChar < '0' || nextChar > '1') 
       { 
        throw decryptInputError; 
        return; 
       } 
       var thisSubtring = ""; 
       for (var j = 0, k = parseInt(thisChar, 10); j < k; j++) 
        thisSubstring += nextChar; 
       retString += thisSubstring; 
      } 
      else 
      { 
       retString += thisChar; 
      } 
     } 
     if (!(retString.length % 8)) 
     { 
      throw decryptInputError; 
      return; 
     } 
     for (var i = 0, j = retString.length; i < j; i += 8) 
     { 
      retString = ""; 
      retString += parseInt(thisString.substr(i,8), 2); 
     } 
     return retString; 
    } 
+0

请创建一个jsfiddle - > http://jsfiddle.net/ – lshettyl

+0

没有错误在这里抛出:http://jsfiddle.net/vY3Kr/ –

+0

复制你的代码我没有得到任何这样的错误。如果我修改了定义的'str'变量,那么我可以得到这个错误,但不是按原样运行它。 – Danny

回答

1

我相信这是因为你抛出错误并没有捕获它在你的代码...

here

基本上basicaly中,“扔”语句是由这样你可以创建自己的自定义错误。你仍然需要“捕捉”它们,并在你的其他代码中错误地处理它们。

<script type="text/javascript"> 
    try{ 
     var str = "010510160"; 
     document.write(decryptStr(str)); 
    } 
    catch(err){ 
    //error handling code here 
    } 
</script> 

也,这段代码:

if (nextChar < '0' || nextChar > '1') 
{ 
    throw decryptInputError; 
    return; 
} 

将抛出错误,每不是“0”或“1”,如果我没有记错的性格......

相关问题