Exception ใน .NET

บทความโดย: 9Expert Team

Exception ใน .NET

9Expert Team 1 นาที

Exception หมายถึง ข้อยกเว้นเมื่อเกิดความผิดพลาดในการทำงานของคำสั่ง เช่น คำนวณผิดพลาด, ไม่พบไฟล์ที่ต้องการ เป็นต้น สำหรับ C# นั้น Exception ถือว่าเป็น Object ชนิดหนึ่งของ .NET Framework โดยเราสามารถควบคุม Exception ได้

ตัวอย่างของ Exception

  • FormatException เมื่อรูปแบบของตัวแปรไม่ตรงกับที่ต้องการ

  • StackOverFlowException เมื่อหน่วยความจำเต็มใน Stack

  • EndOfStreamException เมื่อพยายามอ่านไฟล์ที่ปิดไปแล้ว

  • OverFlowException เมื่อกำหนดค่าเกินกว่าที่ตัวแปรจะรับได้

บทความที่เกี่ยวข้อง

.NET Core 2 และ C# 7 : Deconstruct Tuple และ Type อื่นๆ

.NET Core 2 และ C# 7 : Deconstruct Tuple และ Type อื่นๆ

ภาษาC# 7.0 ขึ้นไปสนับสนุนการประกาศตัวแปรแบบ discard ซึ่งเป็นตัวแปรแบบเขียนได้เท่านั้น (read-only) โดยที่ท่านจะประกาศตัวแปรแบบนี้กี่ตัวก็ได้ แต่ทุกตัวจะมีชื่อเดียวกันหมดคือ _ (เครื่องหมายขีดเส้นใต้หรือ underscore) ประโยชน์ของตัวแปรแบบ discard คือการนำไปใช้กับTuple (Tuple อ่านรายละเอียดเรื่องTupleได้จากบทความตอนก่อนหน้านี้) เพราะการรับค่าส่งกลับจากmethodที่ส่งค่ากลับเป็นTuple หรือการเรียกใช้methodที่มีพารามิเตอร์แบบ out เราจะต้องประกาศตัวแปรไว้รับค่า ซึ่งบ่อยครั้งที่เราไม่ต้องการใช้ค่าจากตัวแปรเหล่านั้น แต่ก็จำต้องประกาศ ทำให้โค้ดรกรุงรังโดยเปล่าประโยชน์

อ่านเพิ่มเติม
.NET Core 2 และ C# 7 : ref return, ref local และ Local Function

.NET Core 2 และ C# 7 : ref return, ref local และ Local Function

คุณสมบัติ ref return เริ่มตั้งแต่C# 7.0 จากนั้นพอมาถึงC# 7.3 ก็เพิ่มคุณสมบัติ ref local เพื่อให้ใช้งานคู่กัน ทำให้เขียนโค้ดฝั่งmethodและฝั่งตัวรับได้สะดวกยิ่งขึ้นไปอีก ปรกตินักเขียนโค้ดอย่างเราจะใช้ตัวกระทำ ref (ความจริงเป็นmodifierแต่เพื่อให้กระชับต่อไปนี้จะเรียกว่าเป็น “คำสั่ง” ) เมื่อต้องการส่ง “ค่าอ้างอิง” ไปเป็นพารามิเตอร์ (คือการส่งค่าไปยังmethodโดยส่งค่าอ้างอิงไป ไม่ได้ส่งค่าของตัวแปรไป) หรือที่เรียกว่า “การผ่านตัวอ้างอิง” (pass by reference) นี่เป็นคุณสมบัติที่มีในC#ตั้งแต่versionแรก แต่มาตอนนี้เราสามารถใช้คำสั่ง ref ในลักษณะอื่น ๆ ได้ด้วย ในตอนที่ผ่านมาผู้เขียนได้พูดถึงการการใช้ ref return ไปแล้วบางส่วน ในบทความตอนนี้จะอธิบายรายละเอียดของ ref return ที่เหลือ และจะต่อด้วยเรื่องคุณสมบัติ ref local ด้วย

อ่านเพิ่มเติม