Ném ra các loại ngoại lệ khác nhau trong JavaScript

Hãy ném ra một ngoại lệ của riêng chúng ta và xem, đối tượng lỗi sẽ hoạt động như thế nào trong trường hợp này:

javascripttry {
  throw new Error('nội dung ngoại lệ');
} catch (error) {
  console.log(error.name); // 'Error'
  console.log(error.message); // 'nội dung ngoại lệ'
}

Như bạn thấy, loại ngoại lệ của chúng ta là 'Error'. Bất kỳ ngoại lệ nào được ném ra theo cách tương tự cũng sẽ có cùng loại. Tuy nhiên, điều này không phải lúc nào cũng thuận tiện, bởi vì nếu chúng ta có thể có nhiều ngoại lệ, chúng ta sẽ không thể phân biệt chúng với nhau.

JavaScript có giải pháp cho vấn đề này: có thể ném ra các ngoại lệ không chỉ thuộc loại Error, mà còn thuộc bất kỳ loại lỗi tích hợp sẵn nào trong JavaScript, ví dụ: TypeError, SyntaxError, RangeError.

Hãy ném ra một ngoại lệ loại SyntaxError để làm ví dụ:

javascripttry {
  throw new SyntaxError('nội dung ngoại lệ');
} catch (error) {
  console.log(error.name); // 'SyntaxError'
  console.log(error.message); // 'nội dung ngoại lệ'
}
Задание 1

Hãy ném ra một ngoại lệ với loại TypeError.

Задание 2

Ném ra các ngoại lệ với loại SyntaxError và RangeError. Bắt các ngoại lệ này bằng một khối try duy nhất. Trong khối catch, hãy in ra các thông báo lỗi khác nhau cho các ngoại lệ thuộc các loại khác nhau.