首页 > 代码库 > 异常和状态管理

异常和状态管理

一、异常处理机制

1,应该在try中放置多少代码?
取决于状态管理。如果在一个try块中执行多个可能抛出同一个异常类型的操作,但不同的操作有不同的异常恢复措施,则应该将每个操作都放到他自己的try块中,这样才能正确地恢复状态
2,try、finally,catch执行顺序

            try
            {
                try
                {
                    throw new Exception("异常");
                }
                finally
                {
                    Console.WriteLine("finally");
                }
            }
            catch 
            {
                Console.WriteLine("catch");
            }
            //输出顺序:finally catch
            Console.ReadLine();

3,finally设计

        private void ReadData(string pathname)
        {
            FileStream fs = null;
            try
            {
                fs = new FileStream(pathname, FileMode.Open);
                //处理文件中的数据
            }
            catch (IOException)
            {
                //在此添加从IOException恢复的代码
            }
            finally
            {
                //确保文件被关闭
                if(fs!=null)fs.Close();
            }
        }

 

异常和状态管理