Skip to content

try cache

async/await

เมื่อใช้ async/await ซึ่งเป็นวิธีการเขียนโค้ดอะซิงโครนัสให้เป็นซิงโครนัส คุณสามารถใช้ try/catch เพื่อจัดการข้อผิดพลาดที่เกิดจากการใช้ Promises

js
async function fetchData() {
  try {
    const response = await someAsyncFunction();
    console.log('ข้อมูล:', response);
  } catch (error) {
    // จัดการข้อผิดพลาด
    console.error('เกิดข้อผิดพลาด:', error);
  }
}

fetchData();

Error Event

EventEmitter Error Event

คลาส EventEmitter ใช้สำหรับจัดการเหตุการณ์ต่าง ๆ รวมถึงข้อผิดพลาด คุณสามารถจับเหตุการณ์ error ได้โดยการฟังเหตุการณ์นี้

js
import { EventEmitter } from 'events';
const emitter = new EventEmitter();

// ฟังเหตุการณ์ error
emitter.on('error', (err) => {
  console.error('เกิดข้อผิดพลาด:', err);
});

// สร้างข้อผิดพลาด
emitter.emit('error', new Error('มีข้อผิดพลาดเกิดขึ้น'));

Stream Error Event

ในระบบสตรีมของ Node.js เช่น Readable และ Writable streams คุณสามารถจับเหตุการณ์ error ที่เกิดขึ้นในระหว่างการทำงานของสตรีมได้

js
import fs from 'fs';
const readableStream = fs.createReadStream('nonexistentfile.txt');

// ฟังเหตุการณ์ error
readableStream.on('error', (err) => {
  console.error('เกิดข้อผิดพลาดในสตรีม:', err);
});

HTTP Server Error Event

สำหรับเซิร์ฟเวอร์ HTTP ที่สร้างด้วย Node.js คุณสามารถจับเหตุการณ์ error ที่เกิดขึ้นในระหว่างการดำเนินการของเซิร์ฟเวอร์ได้

js
import http from 'http';
const server = http.createServer((req, res) => {
  res.end('Hello World');
});

// ฟังเหตุการณ์ error
server.on('error', (err) => {
  console.error('เกิดข้อผิดพลาดที่เซิร์ฟเวอร์:', err);
});

// เริ่มเซิร์ฟเวอร์
server.listen(3000, () => {
  console.log('Server running at http://127.0.0.1:3000/');
});

Process Error Event

process ใน Node.js สามารถจับเหตุการณ์ uncaughtException และ unhandledRejection เพื่อจัดการข้อผิดพลาดที่ไม่ได้รับการจัดการ

js
// ฟังเหตุการณ์ uncaughtException
process.on('uncaughtException', (err) => {
  console.error('ข้อผิดพลาดที่ไม่ถูกจับ:', err);
  process.exit(1); // ออกจากโปรเซสด้วยรหัสข้อผิดพลาด
});

// ฟังเหตุการณ์ unhandledRejection
process.on('unhandledRejection', (reason, promise) => {
  console.error('การปฏิเสธที่ไม่ได้รับการจัดการ:', reason);
});

Released under the MIT License