public ExceptionSafe()
        {
            PreciousResource tmp1 = null, tmp2 = null;

            try
            {
                tmp1 = new PreciousResource();
                tmp1.Open();
                tmp2 = new PreciousResource();
                tmp2.Open();

                // Commit point, no exception risk any more.
                resource1 = tmp1;
                tmp1      = null;
                resource2 = tmp2;
                tmp2      = null;
            }
            finally
            {
                if (tmp1 != null)
                {
                    tmp1.Dispose();
                }

                if (tmp2 != null)
                {
                    tmp2.Dispose();
                }
            }
        }
 public NotExceptionSafe()
 {
     resource = new PreciousResource();
     resource.Open();
 }