错误和异常
错误通常用于通知另一段代码,在尝试执行任务时出现了问题,然后该错误可能会被传递给用户。
当创建——**抛出**——错误时,它们会中断当前正在运行的代码,除非它们被**捕获**。
例如,通过向 JSON.parse 提供无效数据,可以强制抛出错误。
JSON.parse("a");
// Produces a SyntaxError
您可以使用一种称为“try-catch”的结构来处理抛出的异常。它看起来像这样:
try {
JSON.parse("a"); // Produces a SyntaxError
} catch (error) {
// Handle the error
alert(error.message);
}
如果在 try 块中抛出错误,它不会阻止代码继续执行——错误会传递到 catch 块供您处理。例如,在这里,您可以告知用户传入的 JSON 是无效的。
传递到 catch 块的错误(类似于函数)是一个对象,其中包含一个 message 属性,您可以使用它来查看出现了什么问题。
创建错误
您可以生成自己的错误供他人处理。这是使用 throw 关键字完成的。
throw new Error("I hungry. Fridge empty.");
防御性编程
错误最常发生在数据从您的代码外部传入的前沿,因此这些区域是您需要最谨慎的地方。
Try-catch 块是处理错误的一种方法,但您也可以检查某些数据的类型,并在收到格式不正确的数据时提供合理的默认值。在代码中采取防御性措施是避免错误的好方法。
