Javascript中是否存在错误类型?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript中是否存在错误类型?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2612字,纯文字阅读大概需要4分钟。
内容图文
![Javascript中是否存在错误类型?](/upload/InfoBanner/zyjiaocheng/804/34c46191d5fe450080ee423e590b0dca.jpg)
我会问一下java脚本错误,是否有像php这样的错误类型
或其他人,
例如:在php中我们注意到了,并且Parse Error ..etc通知不会
停止php执行,但解析将停止执行PHP代码
直..
现在有这样的js错误,或者什么是js分类
错误..我知道我们可以通过尝试处理错误,捕获..,但是在那里
js中的错误是stooped脚本,其他人不会停止执行脚本
谢谢
解决方法:
is there error in js was stooped script and others will not stop execute script
除了解析/语法错误,没有.
JavaScript有例外.异常退出抛出它的代码,以及调用它的代码,依此类推,直到它被捕获为止.如果未捕获,则终止所有当前运行的函数,并将错误记录到Web控制台.
因此,一个异常(你明确抛出的一个或者你作为某个东西的副产品发生的异常)将终止所有正在运行的函数(如果没有捕获)或者只终止一些代码(如果被捕获).
例如:
function foo() {
try {
bar(0);
}
catch (e) {
console.log("Caught exception");
}
}
function bar(a) {
if (a <= 0) {
throw new Error("'a' cannot be <= 0");
}
console.log("bar: a = " + a);
}
foo();
在那里,异常后的bar中的代码没有运行(我们没有看到“bar:a = 0”)因为抛出了异常,终止了bar.但foo的代码在catch块中继续,因为foo捕获了异常.
JavaScript是不寻常的,因为你可以抛出任何东西,包括字符串,数字等.但是如果你想要有用的信息,你通常会抛出错误:
throw new Error("Optional message here");
既然你抛出的东西可以是任何东西,你可能会认为有一种方法只能抓住某些东西,但事实并非如此. catch捕获任何抛出的异常.所以:
try {
throw "foo";
}
catch (e) {
}
try {
throw new Error();
}
catch (e)
}
try {
throw 42;
}
catch (e)
}
请注意,那些捕获条款是相同的;他们捕获任何抛出的东西.当然,你可以检查你得到的东西并重新抛出:
try {
// ...some code here that may throw any of several things...
}
catch (e)
if (typeof e === "string") {
// Handle it here
}
else {
throw e;
}
}
我们只处理字符串的异常,而不处理数字,错误对象等异常.
如果你愿意,你可以创建自己的派生版本的错误,虽然它比它应该更多的痛苦:
function MySpecificError(msg) {
this.message = msg;
try {
throw new Error();
}
catch (e) {
this.stack = e.stack;
}
}
MySpecificError.prototype = Object.create(Error.prototype);
MySpecificError.prototype.constructor = MySpecificError;
然后:
throw new MySpecificError("Something went wrong.");
请注意,我们必须填写MySpecificError中的代码来创建堆栈跟踪. (另请注意,并非所有引擎都提供堆栈跟踪,但如果有,则允许您使用它.)
有些引擎提供了一些开箱即用的错误类型:
>错误
> RangeError(某事超出范围)
> ReferenceError(但通常是你让引擎抛出的东西)
> TypeError(再次)
> SyntaxError(再次)
最后,值得注意的是,在其他环境中会导致异常的一些事情不会出现在JavaScript中,主要是围绕数学.例如:
var result = 10 / 0;
在许多非JavaScript环境中,这会导致运行时错误(除以零).在JavaScript中,它没有;结果获得无限值.
同理:
var x = Number("I am not a number");
要么
var x = parseInt("I am not a number", 10);
…不会抛出解析错误,它会将x设置为NaN(“不是数字”).
内容总结
以上是互联网集市为您收集整理的Javascript中是否存在错误类型?全部内容,希望文章能够帮你解决Javascript中是否存在错误类型?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。