javascript怎么抛出错误?
<p>程序的非正常运行状态被称为“异常”或“错误”,解释器会为每个错误情形创建并抛出一个Error对象,其中包含错误的描述信息。那么如何抛出错误?</p><p>在JavaScript中可以使用throw语句抛出错误。throw语句用来抛出一个用户自定义的异常,当前函数的执行将被停止(throw之后的语句将不会执行),并且控制将被传递到调用堆栈中的第一个catch块。</p>
<p>如果调用者函数中没有catch块,程序将会终止。</p>
<p>1、抛出了一个值为字符串的异常</p>
<pre><code class="hljs php"><span class="hljs-keyword">throw <span class="hljs-string">"Error"; <span class="hljs-comment">//控制台报错: Uncaught Error</span></span></span></code></pre>
<p>2、抛出了一个值为整数13的异常</p>
<pre><code class="hljs php"><span class="hljs-keyword">throw <span class="hljs-number">13; <span class="hljs-comment">//控制台报错: Uncaught 13</span></span></span></code></pre>
<p>3、抛出了一个值为true的异常</p>
<pre><code class="hljs php"><span class="hljs-keyword">throw <span class="hljs-keyword">true; <span class="hljs-comment">//控制台报错: Uncaught true</span></span></span></code></pre>
<p>4、抛出了一个错误对象</p>
<pre><code class="hljs javascript"><span class="hljs-keyword">throw <span class="hljs-built_in">Error(<span class="hljs-string">'abc'); <span class="hljs-comment">//控制台报错: Uncaught Error: abc
<span class="hljs-keyword">throw <span class="hljs-keyword">new <span class="hljs-built_in">Error(<span class="hljs-string">'abc'); <span class="hljs-comment">//控制台报错: Uncaught Error: abc</span></span></span></span></span></span></span></span></span></code></pre>
<p>5、应用举例:提示函数调用中的错误</p>
<pre><code class="hljs javascript"><span class="hljs-function"><span class="hljs-keyword">function <span class="hljs-title">sum(<span class="hljs-params">...number){
<span class="hljs-keyword">var</span> isNum = number.every( <span class="hljs-function"><span class="hljs-params">v => !<span class="hljs-built_in">isNaN(v));
<span class="hljs-keyword">if(isNum){
<span class="hljs-keyword">return <span class="hljs-built_in">eval(number.join(<span class="hljs-string">"+")); <span class="hljs-comment">//数组求和
}<span class="hljs-keyword">else{
<span class="hljs-keyword">throw <span class="hljs-keyword">new <span class="hljs-built_in">Error(<span class="hljs-string">"参数必须是数字或数字字符串!");
}
}
<span class="hljs-built_in">console.log(sum(<span class="hljs-number">1,<span class="hljs-number">2,<span class="hljs-number">3)); <span class="hljs-comment">//6
<span class="hljs-built_in">console.log(sum(<span class="hljs-number">1,<span class="hljs-number">2,<span class="hljs-string">'3')); <span class="hljs-comment">//6
<span class="hljs-built_in">console.log(sum(<span class="hljs-number">1,<span class="hljs-number">2,<span class="hljs-string">'a3'));<span class="hljs-comment">//报错! Error: 参数必须是数字或数字字符串!</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p><strong> </strong></p>
<p><strong>ECMAScript 定义了六种类型的错误:</strong></p>
<p>ReferenceError :找不到对象时<br>TypeError :错误的使用了类型或对象的方法时<br>RangeError :使用内置对象的方法时,参数超范围<br>SyntaxError :语法写错了<br>EvalError :错误的使用了Eval<br>URIError :URI错误</p>
<p>除此之外,还可以使用Error构造方法创建自定义的Error对象,并使用throw语句抛出该对象。</p>
<p><span style="position: relative; left: -100000px">资源搜索网站大全 https://www.renrenfan.com.cn</span>
<span style="position: relative; left: -100000px">广州VI设计公司https://www.houdianzi.com</span></p>
<p><strong>创建错误</strong></p>
<pre><code class="hljs javascript"><span class="hljs-comment">//创建一个错误
<span class="hljs-keyword">var</span> err1 = <span class="hljs-built_in">Error(<span class="hljs-string">"a is undefined!");
<span class="hljs-keyword">var err2 = <span class="hljs-keyword">new <span class="hljs-built_in">Error(<span class="hljs-string">"a is undefined!");
<span class="hljs-built_in">console.log(<span class="hljs-keyword">typeof err1); <span class="hljs-comment">//object
<span class="hljs-built_in">console.log(<span class="hljs-keyword">typeof err2); <span class="hljs-comment">//object
<span class="hljs-built_in">console.log(err1); <span class="hljs-comment">//输出字符串:'Error: a is undefined!'at test.<span class="hljs-comment">html</span><span class="hljs-comment">:21
<span class="hljs-built_in">console.log(err2); <span class="hljs-comment">//输出字符串:'Error: a is undefined!'at test.<span class="hljs-comment">html</span><span class="hljs-comment">:21</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre><br><br>
来源:https://www.cnblogs.com/moluy/p/14085189.html
頁:
[1]