JS властивість Error.message
Загальний опис
Error.message – це властивість, яка містить рядкове представлення помилки, і є частиною об’єкта помилки Error у JavaScript. Цей метод слід використовувати, коли необхідно отримати інформацію про конкретну помилку, що сталася під час виконання програми.
Властивість Error: message часто використовується для логування помилок, що допомагає програмістам визначити, що саме спричинило проблему та де відбулася помилка у коді. Зазвичай, цю властивість використовують у комбінації з іншими методами та властивостями, такими як Error.name і Error.stack, щоб забезпечити повну інформацію про помилку.
Приклад використання цієї властивості в коді може виглядати наступним чином:
try {
// Код, що може викликати помилку
throw new Error('Це прикладова помилка!');
} catch (error) {
console.log(error.message); // Виведе: 'Це прикладова помилка!'
}
У даному прикладі, error.message дозволяє отримати і вивести рядок "Це прикладова помилка!", що допомагає зрозуміти, що саме стало причиною помилки.
Основні особливості та прийоми Error: message включають в себе можливість доступу до короткого опису помилки без необхідності виводити весь об’єкт помилки, що може бути корисним при виведенні повідомлень для користувача або при зберіганні інформації про помилки в логах.
| Порада: | Досвідчені розробники можуть перевизначити властивість
|
| Порада: | Коли ви створюєте новий об'єкт помилки і вказуєте
|
| Порада: | Для початківців, коли виникає помилка, вивчіть властивість |
Синтаксис
const e = new Error("Could not parse input");
// e.message is 'Could not parse input'
Значення
stringДістає своє значення від рядка, переданого конструктору
Error()як перший аргумент.let myError = new Error('Це повідомлення про помилку');У цьому прикладі, рядок
'Це повідомлення про помилку'буде значенням властивостіError.messageдля об'єктуmyError:console.log(myError.message); // виведе: 'Це повідомлення про помилку'
Return
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
1 |
1 |
1 |
5 |
12 |
| Переглядач | ||||
|---|---|---|---|---|
4.4 |
18 |
4 |
1 |
| Переглядач | ||
|---|---|---|
0.10.0 |
1.0 |
Приклади
У цьому прикладі ми маємо блок try / catch, де в блоку try робимо спробу ділити число на нуль. Оскільки ділення на нуль заборонено, ми використовуємо оператор throw для генерації нового об'єкта помилки з конкретним Error.message "Ділення на нуль заборонено". Якщо ця помилка виникає, вона потрапляє в блок catch, де повідомлення про помилку виводиться в консоль за допомогою console.error(e.message).
try {
// Спроба ділення на нуль
let a = 1;
let b = 0;
if(b === 0) throw new Error("Ділення на нуль заборонено");
console.log(a / b);
} catch(e) {
// Виведення повідомлення про помилку
console.error(e.message);
}
В цьому прикладі створюється власний клас помилки ValidationError, який приймає додатковий параметр field, що містить інформацію про поле, де виникла помилка. Функція validateUser генерує новий об'єкт ValidationError, якщо в об'єкті користувача відсутнє поле age. Потім, у блоку try / catch, якщо виникає помилка, ми перевіряємо, чи є це помилка валідації, і виводимо відповідне повідомлення, включаючи Error.message та інформацію про поле, де виникла помилка.
// Власний клас помилки
class ValidationError extends Error {
constructor(message, field) {
super(message); // Встановлюємо повідомлення про помилку
this.field = field; // Додаткова інформація про поле, де виникла помилка
}
}
function validateUser(user) {
if(!user.age) {
throw new ValidationError('Вік користувача відсутній', 'age');
}
}
try {
validateUser({ name: 'Іван' });
} catch(e) {
if(e instanceof ValidationError) {
console.error(`Помилка валідації: ${e.message}. Поле: ${e.field}`);
} else {
console.error(`Невідома помилка: ${e.message}`);
}
}
