⊗jsSpExcThr 145 of 294 menu

การโยนข้อผิดพลาดใน JavaScript

ในบทเรียนที่ผ่านมาเราได้เรียนรู้สองกรณี ที่ JavaScript จะโยนข้อผิดพลาดเมื่อเกิดปัญหา

อย่างไรก็ตาม ในโปรเจกต์ของคุณอาจมีสถานการณ์อื่นๆ ที่ถือเป็นกรณีพิเศษสำหรับคุณ แต่ไม่ใช่สำหรับ JavaScript ในกรณีเช่นนี้ เราสามารถสร้างและโยนข้อผิดพลาดของผู้ใช้เองได้

เรามาดูไวยากรณ์ที่จำเป็นสำหรับสิ่งนี้กัน เริ่มแรกเราต้องสร้างข้อผิดพลาดโดยใช้คำสั่ง new Error โดยส่งข้อความของข้อผิดพลาดเป็นพารามิเตอร์:

new Error('ข้อความข้อผิดพลาด');

จากนั้นโยนข้อผิดพลาดนี้โดยใช้คำสั่ง throw:

throw new Error('ข้อความข้อผิดพลาด');

การโยนข้อผิดพลาดทำให้ JavaScript ถือว่ามีสถานการณ์พิเศษเกิดขึ้น หมายความว่าข้อผิดพลาดดังกล่าวสามารถถูกดักจับได้ โดยใช้โครงสร้าง try-catch และ ประมวลผลตามที่ต้องการ

มาดูตัวอย่างวิธีการใช้สิ่งนี้กัน สมมติว่าเรามีฟังก์ชันที่ใช้หารตัวเลขหนึ่งด้วยอีกตัวหนึ่ง:

function div(a, b) { return a / b; }

ให้เราถือว่าการหารด้วยศูนย์ เป็นสิ่งต้องห้าม และเมื่อพยายามทำเช่นนั้น ควรเกิดสถานการณ์พิเศษขึ้น สำหรับสิ่งนี้ เราจะตรวจสอบในฟังก์ชันว่ามีการพยายาม หารด้วย 0 หรือไม่ หากไม่มี - ให้ทำการหาร แต่หากมี - ให้โยนข้อผิดพลาด:

function div(a, b) { if (b !== 0) { return a / b; } else { throw new Error('ข้อผิดพลาดการหารด้วยศูนย์'); } }

เริ่มแรกให้เราลองหารด้วย 0 โดยไม่ดักจับข้อผิดพลาด:

alert( div(3, 0) );

ในกรณีนี้การทำงานของสคริปต์จะหยุดลง และในคอนโซลจะปรากฏข้อผิดพลาดพร้อมข้อความ 'ข้อผิดพลาด การหารด้วยศูนย์' (ลองตรวจสอบดู) คราวนี้เรามา ลองดักจับข้อผิดพลาดของเราและ ประมวลผลมันในทางใดทางหนึ่ง:

try { alert( div(3, 0) ); } catch (error) { alert('คุณกำลังพยายามหารด้วย 0 ซึ่งเป็นสิ่งต้องห้าม'); }

ใน JavaScript การพยายามหารากที่สองของจำนวนลบ จะไม่ทำให้เกิดการโยนข้อผิดพลาด:

let result = Math.sqrt(-1); console.log(result); // แสดงผล NaN

จงเขียนฟังก์ชันของคุณเองที่ใช้ในการหารากที่สอง ของตัวเลขและในขณะเดียวกันก็โยนข้อผิดพลาด หากมีการหารากที่สองของจำนวนลบ

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ