MST

星途 面试题库

面试题:TypeScript 自定义错误类型及应用

在 TypeScript 中,如何创建自定义错误类型?假设有一个电商系统,订单处理过程可能出现库存不足、支付失败等不同类型的错误,要求基于自定义错误类型实现错误处理逻辑,并在代码中展示如何抛出和捕获这些自定义错误。
30.1万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试

在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);
    }
}

在上述代码中:

  1. 定义了InsufficientStockErrorPaymentFailedError两个自定义错误类型,它们都继承自Error类,并在构造函数中设置了name属性以便区分。
  2. processOrder函数模拟订单处理过程,根据不同条件抛出相应的自定义错误。
  3. 使用try...catch块捕获错误,并根据错误类型进行不同的处理。