使用空结构捕获InvalidOperationException

时间:2012-12-22 11:33:25

标签: c# exception-handling invalidoperationexception

我试图抓住在声明变量时有时会发生的InvalidOperationException。但是,以下代码不起作用。可能是因为我真的不知道你是如何捕获异常的。

public override void Download()
{
    try
    {                                           
        var t = (ForumThread)Globals.Db.Thread.Get(_extIdForumThread, _idF);            
        try
        {
            throw new InvalidOperationException();
        }
        catch (InvalidOperationException exception)
        {
            return;
        }
        catch (Exception exception)
        {
            throw;
        }
    }
}

任何帮助都将非常感激。

1 个答案:

答案 0 :(得分:5)

您不需要自己抛出异常。只是:

    try
    {                                           
        var t = (ForumThread)Globals.Db.Thread.Get(_extIdForumThread, _idF);
    }
    catch (InvalidOperationException exception)
    {
        // Error logging, post processing etc.
        return;
    }

除非你有充分的理由,否则你不应该抓住一般的例外 - 即你的应用程序不会崩溃,但如果你这样做,你需要能够从中恢复。