javascript 错误和异常——迹忆客-ag捕鱼王app官网
编程中存在三种类型的错误:(a) 语法错误,(b) 运行时错误,和 (c) 逻辑错误。
语法错误
语法错误,也称为解析错误,是在对源代码进行解析的时候发生的错误。
例如,以下行会导致语法错误,因为它缺少右括号。
当 javascript 中发生语法错误时,只有包含在与语法错误相同的线程中的代码会受到影响,而其他线程中的代码将被执行,假设它们中没有任何内容取决于包含错误的代码。
运行时错误
运行时错误,也称为异常,发生在执行期间(编译/解释之后)。
下面这行会导致运行时错误,因为这里的语法是正确的,但在运行时,它试图调用一个不存在的方法。
异常也会影响它们所在的线程的其他代码,但是对其他 javascript 线程的代码没有影响。
逻辑错误
逻辑错误可能是最难追踪的错误类型。这些错误不是语法或运行时错误的结果。 而是代码正常运行之后的结果不符合你的预期。
无法捕捉到逻辑错误,因为这取决于业务需求,取决于想在程序中放入什么类型的逻辑。
try...catch...finally 语句
最新版本的 javascript 添加了异常处理功能。javascript 实现了try...catch...finally
构造以及throw
操作符来处理异常。
可以捕获程序员主动生成的异常和运行时的异常,但无法捕获javascript 语法错误。
下面是try...catch...finally块语法
try 块后面必须跟任何一个 catch 块或一个 finally 块(或两者之一)。当try块中发生异常时,将异常放入e并执行catch块。可选的finally块在 try/catch 之后无条件执行。
这是一个示例,我们试图调用一个不存在的函数,而该函数又引发了异常。让我们看看它在没有try...catch 的情况下是显示什么结果
点击下面按钮查看结果:
现在让我们尝试使用try...catch捕获此异常并显示一条用户友好的消息。如果您想对用户隐藏此错误,您也可以禁止显示此消息。
点击下面按钮查看结果:
可以使用finally块,它会在 try/catch 之后始终无条件地执行。
点击下面按钮查看结果:
throw 语句
使用throw语句来引发内置异常或自定义异常。稍后可以采取适当的措施捕获这些异常。
点击下面按钮查看结果:
您可以使用字符串、整数、布尔值或对象在一个函数中引发异常,然后您可以在与上述相同的函数中捕获该异常,或者在使用try...catch块的另一个函数中捕获该异常。
onerror() 方法
onerror事件处理程序是在javascript中错误处理的第一个特性。
点击下面按钮查看结果:
onerror
的事件处理程序提供了三条信息,方便我们找出错误
- 错误消息- 浏览器为给定错误显示的详细的信息
- url - 发生错误的文件
- 行号- 发生错误的代码所在的行号
下面是显示如何提取此信息的示例。
点击下面按钮查看结果:
你可以以任何您认为更好的方式显示提取的信息。
你可以使用如下所示的onerror方法来显示错误消息,以防加载图像时出现任何问题。
可以将onerror与许多 html 标记一起使用,以在出现错误时显示适当的消息,从而提供网页的用户体验。