异常不会停止申请

时间:2012-01-12 15:30:16

标签: c# winforms exception-handling

我有一些正确触发的代码,虽然看起来它实际上并没有按照我的预期进行。

我正在使用System.Text.RegularExpressions.Regex来测试正确格式化的方法参数,在我的测试中,我抛出的ArgumentException实际上并没有停止应用程序。并且没有尝试/捕获它。

当我单步执行代码时,似乎只要它到达throw new ArgumentException行,它就会跳转到我的Form1_Activated事件处理程序,然后继续其业务。

void MainForm_Load(object sender, System.EventArgs e)
    {
        SNSBackup.Backup(_saveLocation, _saveLocation + "\\Backups", "*.xml, *.recipex", 5, ArchiveType.Zip);
    }

public static void Backup(string source, string destination, string ext, int backupsToKeep, ArchiveType type)
        {
            // Test to see if the 'ext' parameter is in a valid format.
            // Makes sure that the
            Regex r = new Regex(@"^(\*\.\w+\s*\,?\s*)+$");

            if (!r.IsMatch(ext))
                throw new ArgumentException();

1 个答案:

答案 0 :(得分:1)

我相信这是WinForms中的一种被称为静默异常的东西。基本上,你的应用程序基本上会吞下抛出未处理的异常(据我所知)。您可以更改某些设置以阻止/处理它 - 请参阅thisthis相关问题。

注意:在其他帖子中似乎提到这是与64位平台隔离的问题。我不确定是不是这种情况。