ฉันต้องการที่จะเขียนตัวจัดการข้อผิดพลาดทั่วไปซึ่งจะจับข้อผิดพลาดที่กำหนดเองที่เกิดขึ้นกับจุดประสงค์ที่โค้ดใด ๆ
เมื่อฉันไม่throw new Error('sample')
ชอบในรหัสต่อไปนี้
try {
throw new Error({'hehe':'haha'});
// throw new Error('hehe');
} catch(e) {
alert(e);
console.log(e);
}
เข้าสู่ระบบแสดงใน Firefox เป็นError: [object Object]
และฉันไม่สามารถแยกวัตถุ
สำหรับบันทึกที่สองthrow
แสดงเป็น:Error: hehe
ในขณะที่ฉันทำ
try {
throw ({'hehe':'haha'});
} catch(e) {
alert(e);
console.log(e);
}
คอนโซลแสดงเป็น: Object { hehe="haha"}
ซึ่งฉันสามารถเข้าถึงคุณสมบัติข้อผิดพลาด
อะไรคือความแตกต่าง?
ความแตกต่างที่เห็นในรหัสคืออะไร? เช่นเดียวกับสตริงจะถูกส่งผ่านเป็นสตริงและวัตถุเป็นวัตถุ แต่ไวยากรณ์จะแตกต่างกันอย่างไร
ฉันไม่ได้สำรวจวัตถุข้อผิดพลาดในการขว้างปา ... ฉันทำแค่โยนสาย
มีวิธีอื่นนอกเหนือจากสองวิธีที่กล่าวมาข้างต้นหรือไม่?
Error
s