How to use Multiple Catch Clause
วริศรา ป้ายงูเหลือม 650710840
วัตถุประสงค์หลักของบล็อก catch คือการจัดการข้อผิดพลาด (Exception) ที่เกิดขึ้นในบล็อก try บล็อกนี้จะถูกดำเนินการก็ต่อมีเมื่อข้อผิดพลาด เกิดขึ้นในโปรแกรมเท่านั้น
การใช้บล็อค Multiple Catch Clause
จะนํา catch มาต่อกันไปเหมือนแยกส่วนเป็นชั้น ๆ ไปเรื่อยๆ
หากมีเหตุการณ์ผิดปรกติเกิดขึ้นกลไกจะตรวจหาไปตามลําดับการประกาศบล็อค catch ทีละอันจากบนลงล่างหากพบบล็อค catch อันใดที่ผูกอยู่กับชนิดเหตุการณ์ผิดปรกติที่สอดคล้องกันจะดําเนินการในบล็อกนั้น และไม่สนใจบล็อค catch อื่นที่ตามมาและหากบล็อก catch ไม่มีข้อผิดพลาดใดๆ คอมไพเลอร์จะค้นหาบล็อก catch ถัดไป
- Multiple Catch Clause ในภาษาต่างๆ
C#
ตัวอย่าง
บล็อก try จะสร้างเหตุการณ์ผิดปรกติ ดังนั้นเราจะใช้บล็อก catch สามประเภทที่แตกต่างกันเพื่อจัดการข้อผิดพลาดที่เกิดจากบล็อก try
บล็อก catch 1 จะจัดการIndexOutOfRangeException
บล็อก catch 2 จะจัดการFormatException
บล็อก catch 3 จะจัดการOverflowException
Java
ตัวอย่าง
โปรแกรมจะทำงานผิดพลาดคือ 0 จะไม่มีทางเป็นตัวหารได้ และโปรแกรมก็จะ ออกจาก try ทำงานในส่วนของ catch เพื่ออ่านรายละเอียดของข้อผิดพลาด
Python
ใน ภาษา Python จริง ๆ คือการใช้บล็อค try และ exceptไม่ใช่ catch เหมือนในภาษาอื่น ๆ เช่น Java หรือ C#
โดยโค้ดที่อยู่ในบล็อค try จะทำงานก่อน ถ้าเกิดข้อผิดพลาดขึ้นจะหยุดการทำงานของโค้ดนั้นทันทีและหันไปทำงานบล็อค except หากเราไม่มีบล็อค except ที่เข้ากับข้อผิดพลาดนั้น โปรแกรมจะยุติการทำงานกับข้อความแสดงข้อผิดพลาด
ตัวอย่าง
การเข้าถึงอินเดกซ์ของลิสต์ที่ไม่มีอยู่จริง
C
ภาษา C ไม่มีฟีเจอร์ try-catch แบบเดียวกับบางภาษา เช่น Java หรือ C# แต่เราสามารถจัดการกับข้อผิดพลาดได้โดยการตรวจสอบค่าที่คืนมาจากฟังก์ชันและใช้กลไกควบคุมภายในโปรแกรม เช่น if-else หรือ switch-case ในการทำงานคล้ายกับ try-catch
ตัวอย่าง
จัดการกับข้อผิดพลาดโดยการตรวจสอบค่า divisor ก่อนการทำการหาร หากเป็นศูนย์ เราจะแสดงข้อความผิดพลาดและออกจากโปรแกรมทันที นี่คือการใช้ if-else ในการจำลอง try-catch
ใช้catchต่อกัน ไปเรื่อยๆ
ใช้catchต่อกันไปเรื่อยๆ
ใช้บล็อคtry และexcept
ไม่มีฟีเจอร์
try-catch ใช้ if-else หรือ
switch-case
Slide Presentation
Video Presentation
แหล่งอ้างอิง
C#
ankita_saini./(24 มกราคม 2562)./How to use multiple catch clause./geeksforgeeks.org./https://www.geeksforgeeks.org/c-sharp-how-to-use-multiple-catch-clause/
Chatri Ngambenchawong./(10 ธันวาคม 2559)./Guidelines for Exception Handling./naiwaen.debuggingsoft.com./https://naiwaen.debuggingsoft.com/2016/12/csharp-guidelines-exception-handling/
Java
ThaiCreate.Com Team./(9 สิงหาคม 2556)./Java try catch Exception./thaicreate.com./https://www.thaicreate.com/java/java-try-catch-exception.html
MarcusCode./(11 ตุลาคม 2567)./Exception./marcuscode.com./https://marcuscode.com/lang/java/exception#google_vignette
ภิญโญ แทประสาทสิทธิ์./(24 กุมภาพันธ 2559)./พื้นฐานเกี่ยวกับเหตุการณผิดปรกติในจาวา Basics of Java Exceptions./มหาวิทยาลัยศิลปากร./https://docs.google.com/viewerng/viewer?url=https://webserv.cp.su.ac.th/~pinyotae/compro2/lecture/Week7-BasicException_4perPage.pdf
Python
try-catch คืออะไร การใช้งาน try-catch ในภาษา Python แบบง่ายๆ พร้อมตัวอย่าง./expert-programming-tutor.com./https://expert-programming-tutor.com/tutorial/article/KC0060088004_what_is_try-catch_in_Python_language.php
C
try-catch คืออะไร การใช้งาน try-catch ในภาษา C แบบง่ายๆ พร้อมตัวอย่าง./expert-programming-tutor.com./https://expert-programming-tutor.com/tutorial/article/KC0010088004_what_is_try-catch_in_C_language.php
Last updated