使用空结构捕获InvalidOperationException

Nik*_*iko 1 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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

任何帮助都将非常感激.

Chr*_*isF 5

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

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

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