Which 's the exception

posted on 28 Sep 2006 19:10 by tidno1 in csharp-and-dotnet
class MyException : Appliction {}

class Program {
    MyException ex;

    void SomeMethod() {
        ...
        throw ex;
    }

    void Test() {
        try {
            SomeMethod();
        } catch (MyException) {
            Console.WriteLine("MyException was caught");
        }
    }
}

อะไรจะเกิดขึ้น ถ้าเราเรียก Test() ล่ะ คิดว่าข้อความ "MyException was caught" จะถูกพิมพ์ออกมาตลอดเหรอ ? ไม่หรอก อย่าลืมสิ ว่า Exception ก็เป็น reference type ดังนั้นถ้าตัวแปร ex ยังไม่ถูกกำหนดค่า แล้วเรามาเรียกใช้เนี่ย NullReferenceException ก็ถูกโยนออกมาแทน

เผอิญว่าวันนี้นั่งว่าง ๆ งานก็เลยเปิด C# Spec อ่านเล่น ๆแล้วเจอเรื่องนี้พอดีเลยอยากเอามาให้อ่านกันเล่น ๆ ไม่มีอะไรสำคัญนักหรอก

Comment

Comment:

Tweet

GPv3ie mljnmmvw ujentukz zqhqolmp

#3 By axZPrpDOjmnW (89.248.172.50) on 2009-07-28 15:03

#2 By (203.188.61.228) on 2006-10-31 18:47

ยังเข้าไม่ถึง C# ครับ - -

#1 By [[ Dr Devil ]] on 2006-09-28 19:57