面试题答案
一键面试在TypeScript中,可以通过继承Error
类来创建自定义错误类型。以下是针对电商系统订单处理中不同错误类型的实现代码:
// 创建自定义错误类型
class InsufficientStockError extends Error {
constructor(message: string) {
super(message);
this.name = 'InsufficientStockError';
}
}
class PaymentFailedError extends Error {
constructor(message: string) {
super(message);
this.name = 'PaymentFailedError';
}
}
// 模拟订单处理函数
function processOrder(stock: number, amount: number) {
if (stock < 1) {
throw new InsufficientStockError('库存不足,无法处理订单');
}
if (amount <= 0) {
throw new PaymentFailedError('支付金额无效,支付失败');
}
console.log('订单处理成功');
}
// 捕获错误
try {
processOrder(0, 100);
} catch (error) {
if (error instanceof InsufficientStockError) {
console.error('库存相关错误:', error.message);
} else if (error instanceof PaymentFailedError) {
console.error('支付相关错误:', error.message);
} else {
console.error('其他错误:', error);
}
}
在上述代码中:
- 定义了
InsufficientStockError
和PaymentFailedError
两个自定义错误类型,它们都继承自Error
类,并在构造函数中设置了name
属性以便区分。 processOrder
函数模拟订单处理过程,根据不同条件抛出相应的自定义错误。- 使用
try...catch
块捕获错误,并根据错误类型进行不同的处理。