Topik ini menjelaskan cara menangani kesalahan dalam runtime Node.js.
Jenis-jenis kesalahan
Tangkap pengecualian
Jika terjadi pengecualian selama eksekusi suatu fungsi, Function Compute menangkap kesalahan tersebut dan menghasilkan data berformat JSON yang mencakup pesan kesalahan, tipe, serta informasi stack. Potongan kode berikut menunjukkan contoh-contohnya.
Modul ECMAScript
Contoh ini hanya mendukung Node.js 18 atau yang lebih baru.
Kode contoh mendukung penerapan satu klik. Anda dapat menerapkan kode contoh di Function Compute dengan satu klik. nodejs-fc-err-es
export const handler = async (event, context) => {
throw new Error('oops');
};Modul CommonJS
exports.handler = function(event, context, callback) {
throw new Error('oops');
};Contoh respons:
{
"errorMessage": "oops",
"errorType": "Error",
"stackTrace": [
"Error: oops",
" at handler (file:///code/index.mjs:2:9)",
" at module.exports (file:///var/fc/runtime/nodejs20/bootstrap.mjs:5655:14)",
" at process.processTicksAndRejections (node:internal/process/task_queues:95:5)"
]
}Keluar abnormal
Jika fungsi Anda keluar saat sedang berjalan, sistem akan mengembalikan pesan kesalahan umum.
Modul ECMAScript
Contoh ini hanya mendukung Node.js 18 atau yang lebih baru.
export const handler = async (event, context) => {
process.exit(1);
};Modul CommonJS
exports.handler = function(event, context, callback) {
process.exit(1);
};Contoh respons:
{
"errorMessage": "Proses keluar secara tak terduga sebelum menyelesaikan permintaan (Durasi: 12ms, Penggunaan Memori Maks: 0MB)"
}Pemecahan masalah
Jika Function Compute mengalami kesalahan, ia akan mengembalikan kode status HTTP, pesan respons, dan tipe pengecualian yang menunjukkan penyebab kesalahan. Klien atau layanan yang memanggil fungsi tersebut dapat menangani kesalahan dengan kode atau meneruskannya ke pengguna akhir.
Daftar berikut menjelaskan kode status yang mungkin Anda terima dari suatu fungsi.
2xx
2xx: Function Compute telah menerima permintaan Anda. Jika respons berisi header
X-Fc-Error-Type, Function Compute telah menangkap kesalahan fungsi, seperti pengecualian yang dilempar dalam kode.4xx
4xx (kecuali 429): Terjadi kesalahan pada klien yang memulai pemanggilan.
429: Permintaan dibatasi.
5xx
5xx: Terjadi kesalahan internal di Function Compute, konfigurasi fungsi tidak valid, atau ada masalah sumber daya.
Untuk informasi lebih lanjut tentang kesalahan pemanggilan, lihat Konfigurasikan mekanisme ulang.