只是举一个例子:
        private void button1_Click(object sender, EventArgs e)
        {
            work();
            FileStream myBfile = new FileStream("b.txt", FileMode.CreateNew, FileAccess.ReadWrite);
            myBfile.Close();
            //.........
            //因为调用关系,这里的语句不可能写在work的try里。(如果跟在try里确实可以达到不执行目的)
        }        private static void work()
        {
            try
            {
                FileStream myAfile = new FileStream("a.txt", FileMode.Open, FileAccess.Read);
                myAfile.Close();
            }
            catch (FileNotFoundException e)
            {
                MessageBox.Show(e.Message, "提示");
                Application.Exit();
            }
        }当A文件不存在时,catch给了提示后,程序并不是马上退出,还是会建立B文件才退。现在我希望的是马上退出,这应该怎么办?(上面程序只是例子,这里还可能有序列化错误等等,也就是不能说只在work调用前用File.Exists()判断一下解决问题。)

解决方案 »

  1.   

    private void button1_Click(object sender, EventArgs e) 
            { 
    try
    {
                work(); 
                FileStream myBfile = new FileStream("b.txt", FileMode.CreateNew, FileAccess.ReadWrite); 
    myBfile.Close(); 
                }
    catch (Exception e)
    {
    MessageBox.Show(e.Message, "提示"); 
                    Application.Exit(); 
    }
                //......... 
                //因为调用关系,这里的语句不可能写在work的try里。(如果跟在try里确实可以达到不执行目的) 
            }         private static void work() 
            { 
                try 
                { 
                    FileStream myAfile = new FileStream("a.txt", FileMode.Open, FileAccess.Read); 
                    myAfile.Close(); 
                } 
                catch (FileNotFoundException e) 
                { 
                   throw (e)
                } 
            } 
      

  2.   

      private void button1_Click(object sender, EventArgs e) 
            { 
    try{
                work(); 
    }catch(FileNotFoundException  e)
    {
    Application.Exit(); 
    }
                FileStream myBfile = new FileStream("b.txt", FileMode.CreateNew, FileAccess.ReadWrite); 
                myBfile.Close(); 
                //......... 
                //因为调用关系,这里的语句不可能写在work的try里。(如果跟在try里确实可以达到不执行目的) 
            }   private static void work() 
            { 
                try 
                { 
                    FileStream myAfile = new FileStream("a.txt", FileMode.Open, FileAccess.Read); 
                    myAfile.Close(); 
                } 
                catch (FileNotFoundException e) 
                { 
                    MessageBox.Show(e.Message, "提示"); 
                    throw e;
                } 
            } 
      

  3.   

    work可以加返回值,表示成功与否