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

คีย์เวิร์ด finally ใน C#

ภาพรวม

คีย์เวิร์ด finally ใช้สร้างบล็อกโค้ดที่จะทำงาน เสมอ ไม่ว่าจะมีข้อยกเว้นเกิดขึ้นหรือไม่ กรณีทั่วไปคือการปิดไฟล์ ปล่อยทรัพยากร หรือทำความสะอาด

ไวยากรณ์

try {
    // โค้ดที่อาจโยนข้อยกเว้น
}
catch (ExceptionName e1) {
    // จัดการข้อยกเว้นชนิดที่ 1
}
catch (ExceptionName e2) {
    // จัดการข้อยกเว้นชนิดที่ 2
}
finally {
    // โค้ดที่จะทำงานเสมอ
}

ตัวอย่าง: การหารด้วยศูนย์

using System;

public class Demo {
    int result;
    Demo() {
        result = 0;
    }
    public void division(int num1, int num2) {
        try {
            result = num1 / num2;
        }
        catch (DivideByZeroException e) {
            Console.WriteLine("Exception caught = {0}", e);
        }
        finally {
            Console.WriteLine("Result = {0}", result);
        }
    }
    public static void Main(string[] args) {
        Demo d = new Demo();
        d.division(100, 0);
    }
}

ผลลัพธ์

Exception caught = System.DivideByZeroException: Attempted to divide by zero.
   at Demo.division(Int32 num1, Int32 num2) in d:\Windows\Temp\n0kebv45.0.cs:line 11
Result = 0

สรุป

  • บล็อก finally ทำงานหลัง try และ catch (ถ้ามี)
  • เหมาะสำหรับการทำความสะอาดทรัพยากร เช่น ปิดไฟล์ ปิดการเชื่อมต่อฐานข้อมูล
  • แม้จะมี return ใน try หรือ catch ก็ยังทำงาน