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 включають в себе можливість доступу до короткого опису помилки без необхідності виводити весь об’єкт помилки, що може бути корисним при виведенні повідомлень для користувача або при зберіганні інформації про помилки в логах.
- Порада
-
Для початківців, коли виникає помилка, вивчіть властивість
автор: BondError.messageразом зError.nameтаError.stack, щоб отримати повну картину про те, що пішло не так. Знання типу помилки (Error.name), конкретного повідомлення (Error.message), та місця, де вона сталася (Error.stack), може значно полегшити відлагодження коду. - Порада
-
Коли ви створюєте новий об'єкт помилки і вказуєте
Error.message, напишіть зрозуміле, конкретне та інформативне повідомлення. Це дозволить швидше зрозуміти та вирішити проблему, особливо коли ваш код стане більш складним або коли інші розробники будуть працювати з вашим кодом.
автор: Bondthrow new Error('Ділення на нуль неможливе!'); - Порада
-
Досвідчені розробники можуть перевизначити властивість
Error.messageу своїх власних класах помилок, щоб надавати більше контексту або персоналізувати повідомлення, зробити його більш дружнім для користувача або більш детальним для розробника.
автор: Bondclass ValidationError extends Error { constructor(message, field) { super(message); this.field = field; } } throw new ValidationError('Введене значення не є числом!', 'age');
Синтаксис
const e = new Error("Could not parse input");
// e.message is 'Could not parse input'
Властивість message може отримувати єдине значення:
-
string -
Дістає своє значення від рядка, переданого конструктору
Error()як перший аргумент.let myError = new Error('Це повідомлення про помилку');У цьому прикладі, рядок
'Це повідомлення про помилку'буде значенням властивостіError.messageдля об'єктуmyError:
автор: Bondconsole.log(myError.message); // виведе: 'Це повідомлення про помилку'
Переглядачі
| Переглядач | |||||
|---|---|---|---|---|---|
| 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}`);
}
}
Коментарі
Коментарів ще немає — будьте першим!