Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C#

ความแตกต่างระหว่างข้อยกเว้นระดับระบบและข้อยกเว้นระดับแอปพลิเคชัน


อย่างที่เราทราบดีว่าข้อยกเว้นคือสิ่งที่หมายถึงการหยุดชะงักของการไหลของโปรแกรมหรือแอปพลิเคชัน เหตุการณ์ที่ไม่ต้องการนี้เรียกว่า ข้อยกเว้น และโดยทั่วไปจะให้ข้อบ่งชี้เกี่ยวกับสิ่งผิดปกติภายในโค้ด โดยทั่วไปโดยเฉพาะอย่างยิ่งในภาษา C # ข้อยกเว้นอาจเป็นระบบหรือข้อยกเว้นระดับแอปพลิเคชัน เป็นหลัก

ซีเนียร์ เลขที่ คีย์ ข้อยกเว้นระดับระบบ ข้อยกเว้นระดับแอปพลิเคชัน
1 ที่มา ข้อยกเว้นของระบบได้มาจากคลาสพื้นฐาน System.SystemException ซึ่งในตัวมันเองเป็นคลาสที่ได้รับของ SystemException ในทางกลับกัน ข้อยกเว้นระดับแอปพลิเคชันนั้นได้มาจากคลาสพื้นฐาน System.ApplicationException ซึ่งเป็นคลาสที่ได้รับมาจาก SystemException อีกครั้ง
2 เกิดขึ้น โดยทั่วไป ข้อยกเว้นของระบบเกิดขึ้นเมื่อพบข้อผิดพลาดที่ไม่สามารถกู้คืนหรือร้ายแรงได้ เช่น ฐานข้อมูลขัดข้อง ข้อผิดพลาดที่ผูกไว้ เป็นต้น ในขณะที่ข้อยกเว้นระดับแอปพลิเคชันพบข้อผิดพลาดบางอย่างที่สามารถกู้คืนได้ เช่น ข้อมูลอินพุตผิดประเภท ข้อยกเว้นทางคณิตศาสตร์ ฯลฯ
3 การจัดการ เนื่องจากข้อผิดพลาดในกรณีที่ข้อยกเว้นระดับระบบร้ายแรง ดังนั้นจึงไม่มีการส่งต่อสำหรับข้อยกเว้นประเภทนี้หรือวิธีการป้องกัน ในทางกลับกัน เนื่องจากข้อยกเว้นระดับแอปพลิเคชันโดยทั่วไปจะได้รับการจัดการที่ระดับโค้ดโดยใช้บล็อก try-catch หากโค้ดไม่มีการบล็อก try and catch สำหรับข้อยกเว้นที่เกิดขึ้น โค้ดดังกล่าวจะเผยแพร่ไปยังระดับหน้าที่รูทีน Page_Error ใช้เพื่อจัดการกับข้อยกเว้น
4 การปรับแต่ง ไม่รองรับการปรับแต่งข้อยกเว้นในกรณีที่มีข้อยกเว้นระดับระบบ ในทางกลับกัน เราสามารถกำหนดและประกาศข้อยกเว้นระดับแอปพลิเคชันที่กำหนดเองได้
5 รุ่น ดังที่กล่าวไว้ในข้างต้น ข้อยกเว้นระดับระบบถูกส่งโดย .NET Common Language Runtime และใช้ในแอปพลิเคชัน .Net เกือบทั้งหมด ในทางกลับกัน ข้อยกเว้นระดับแอปพลิเคชันเกิดขึ้นเมื่อเกิดข้อผิดพลาดที่กู้คืนได้ เช่น ค่าอาร์กิวเมนต์อินพุตที่ไม่ถูกต้องสำหรับวิธีการทางธุรกิจ จะแจ้งเตือนลูกค้าเกี่ยวกับปัญหาเฉพาะแอปพลิเคชันหรือตรรกะทางธุรกิจ