在if else逻辑条件下的混淆

时间:2018-05-23 08:41:12

标签: c#

我有以下代码:

if (filesxt.Extension.ToString()==".rar")
{
    NUnrar.Archive.RarArchive.WriteToDirectory(Sourcepath, Destination, 
        NUnrar.Common.ExtractOptions.ExtractFullPath | 
        NUnrar.Common.ExtractOptions.Overwrite);
}
else if (filesxt.Extension.ToString() == ".zip") 
{
    UnZipFromMTAThread(Sourcepath, Destination);
}

当文件扩展名为 .rar NUnrar.Archive.RarArchive.WriteToDirectory引发异常时,我想执行以下方法:

ExtractFile(Sourcepath, Destination);

我该怎么做?有人可以帮忙吗?

1 个答案:

答案 0 :(得分:2)

如果您需要在代码中处理意外的异常,那么您可以使用try/catch

简单地说,你基本上说“尝试这段代码,如果发生异常,那么捕获异常并执行不同的代码”。

所以你想把你的WriteToDirectory电话放在试试中,然后把你的ExtractFile放在 catch 中。

这样的事情应该适用于你需要的东西:

try
{
    NUnrar.Archive.RarArchive.WriteToDirectory(Sourcepath, Destination, 
        NUnrar.Common.ExtractOptions.ExtractFullPath | 
        NUnrar.Common.ExtractOptions.Overwrite);
}
catch (Exception e)
{
    ExtractFile(Sourcepath, Destination);
}