在特定情况下处理通用异常

时间:2017-07-14 12:57:15

标签: c# exception exception-handling

我试图通过ftp将文件从A移动到B:

SELECT *
FROM [dbo].[IdentityRoles]

我想捕获并处理在找不到必须移动的文件时发生的所有异常。但是ftpClient.Rename(sourcePathName, targetPathName); 会抛出值为Rename的通用异常FtpCommandException。不幸的是,在其他一些情况下会抛出此异常。

我不觉得比较异常的价值是一种干净的方法,如:

{"file/directory not found"}

2 个答案:

答案 0 :(得分:1)

C#6以后,您可以使用异常过滤

try
{
    // your code
}
catch(FtpCommandException ex) 
{
   if(ex.Value == "file/directory not found")
   {
       // do something with this exception
   }
}

预C#6你唯一的选择是里面的条件 catch:

ssl_certificate_id

答案 1 :(得分:0)

在尝试重命名之前,您可能应该检查文件是否存在:

if (ftpClient.FileExists(sourcePathName)){
    ftpClient.Rename(sourcePathName, targetPathName);
}