JS OOP: 29. Error class
by istiq20
HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Error handling: membuat class error manual</title>
</head>
<body>
<script>
// class ValidationError
class ValidationError extends Error {
constructor(message, field) {
super(message);
this.field = field;
}
}
// menggunakan class ValidationError
class MathUtil {
static sum(...numbers) {
if (numbers.length === 0) {
throw new ValidationError("Total parameter harus lebih dari 0", "numbers");
}
let total = 0;
for (const number of numbers) {
total += number;
}
return total;
}
}
// error handling
try {
console.info(MathUtil.sum());
console.info("Eko");
} catch (error) {
if (error instanceof ValidationError) {
console.info(`Terjadi error di field ${error.field} dengan error ${error.message}`);
} else {
console.info(`Terjadi error : ${error.message}`);
}
} finally {
console.info("Program selesai");
}
console.info("Khannedy");
</script>
</body>
</html>