JavaScript 如何拦截类实例中的所有错误
在本文中,我们将尝试理解如何通过理论解释和JavaScript的编码示例来轻松拦截或捕获类实例中的所有错误。
首先让我们了解下面的部分展示了我们将使用的几种语法,以解决我们的问题:
语法:
class Class_name {
...
}
另一个下面显示的语法指示或说明了在类范围内声明任何函数或方法的方式:
class Class_name {
function_name = () => {
...
}
}
另一个显示的语法启示我们如何使用变量来调用类本身内声明的方法来创建或实例化类的实例:
let object_name = new Class_name ();
object_name.function_name();
在分析了上述所有的语法后,让我们快速看一下下面的示例,以便一次理解所有上述解释的语法。 示例-1:
- 在这个示例中,我们将简单地创建一个名为”类”的类,在类中,我们将声明一个方法或函数,该方法或函数将包含我们要打印为控制台输出的数据。
- 稍后,我们将实例化一个类的实例(也就是调用我们的方法的类的对象),并使用它调用我们在类的范围内声明的方法。
JavaScript
<script>
class DataPrint {
data_display = () => {
console.log(
"This article is available on GeeksforGeeks platform...");
};
}
let data_object = new DataPrint();
data_object.data_display();
</script>
输出:
This article is available on GeeksforGeeks platform...
让我们通过下面的示例来了解如何在一个类实例中拦截或捕捉所有的错误。
示例2:
- 在这个示例中,我们将简单地用与上面展示的相同的语法创建一个类,并且该类将包含两个分别会抛出不同错误的方法。
- 然后我们创建多个try-catch块,它们负责获取并处理每个函数抛出的所有错误。
- 在try块中,我们将捕获或获取方法抛出的错误,然后在catch块中处理或打印在try块中捕获的错误作为输出。
Javascript
<script>
class ThrowingErrorsViaMethods {
errorThrowingMethod = (error_message) => {
throw new Error(error_message);
};
anotherErrorThrowingMethod = (error_message) => {
throw new Error(error_message);
};
}
try {
let object = new ThrowingErrorsViaMethods();
object.errorThrowingMethod("Something went wrong...!!");
} catch (error) {
console.log(error.message);
}
try {
let another_object = new ThrowingErrorsViaMethods();
another_object.anotherErrorThrowingMethod(
"No data found!!...");
} catch (error) {
console.log(error.message);
}
</script>
输出:
Something went wrong...!!
No data found!!...
如果一个人不想编写多个 try-catch 块,那么还有另一种技术可以帮助我们避免使用多个 try-catch 块,这在下面的另一个示例中进行了讨论。
示例3:
- 在本文中,我们将尝试使用一个称为回调函数的特殊技术来防止使用多个 try-catch 块。
- 在这里,我们将创建一个类,在该类中再次创建两个分别捕捉不同错误的方法(就像我们在前面的示例中看到的那样)。
- 除了这两个函数,我们还将在该类内部创建一个接受两个参数的函数或方法,一个是方法(实际上是回调函数本身,因为它将在自身中调用这两个方法),另一个是错误信息,该信息将显式地传递给这个第三个方法。
- 当这些参数传递时,我们将在第三个方法内部创建一个 try-catch 块,try 块中将使用一个方法或回调函数来调用包含传入的错误信息的其他方法,然后在第三个方法的 catch 块中处理或打印相应的错误输出。
- 然后,我们将为同一个类创建两个单独的对象,通过这两个对象每次调用第三个方法,该方法负责捕获和处理这两个作为参数传入的方法抛出的所有错误,然后我们将在输出中看到所有的错误。
Javascript
<script>
class ThrowingErrorsViaMethods {
errorThrowingMethod = (error_message) => {
throw new Error(error_message);
};
anotherErrorThrowingMethod = (error_message) => {
throw new Error(error_message);
};
interceptErrors = (method, error_message) => {
try {
method(error_message);
} catch (error) {
return error.message;
}
};
}
let object = new ThrowingErrorsViaMethods();
console.log(
object.interceptErrors(
object.errorThrowingMethod,
"Something went wrong...!!"
)
);
let another_object = new ThrowingErrorsViaMethods();
console.log(
another_object.interceptErrors(
another_object.anotherErrorThrowingMethod,
"No data found!!..."
)
);
</script>
输出:
Something went wrong...!!
No data found!!...