异常处理

案例代码如下:

  class Program
    {
        static void Main(string[] args)
        {
            MyClass cls = new MyClass();
            try
            {
                cls.A();
            }
            catch (System.DivideByZeroException)
            {
                Console.WriteLine("catch clause in Main()");
            }
            finally
            {
            Console.WriteLine("Finally clause in Main()");
        }
        Console.WriteLine("After  try statement in Main");
        Console.WriteLine("------------keep Running ");
        Console.ReadLine();
    }
}

class MyClass
{
public void A()
{
try
{
B();
}
catch (System.NullReferenceException)
{

            Console.WriteLine("catch clause in A()");
        }
        finally
        {

            Console.WriteLine("finally clause in A()");

        }
        
    }
    private void B()
    {
        int x = 10, y = 0;
        try
        {
            x /= y;//除数不能为0;
        }
        catch (System.IndexOutOfRangeException )
        {

            Console.WriteLine("catch clause in B()");
        }
        finally
        {
            Console.WriteLine("finally clasue in B()");
        }
    }

}

//需要正确的异常原因。如果不是,则不会执行catch里面的内容。会继续往下执行。
//当下次try cathc 中,还没有找到异常,则会一直网上寻找。
//结果如下:
finally clasue in B()
finally clasue in A()
catch clause in Main()
Finally clause in Main()
After try statement in Main
------------keep Running

posted @ 2022-02-24 17:24  跨界专家  阅读(11)  评论(0)    收藏  举报