如果异常是同一个类,如何检查它是登录信息异常还是连接丢失异常?
private bool checkFileExists(string absoluteRemoteLocation)
{
try
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(absoluteRemoteLocation);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Timeout = timeOut;
request.Credentials = new NetworkCredential(this.username, this.password);
request.GetResponse();
return true;
}
catch(Exception e) //i want to check here
{
var g = e.ToString();
return false;
}
}
答案 0 :(得分:1)
使用不同的catch
块,如下所示:
catch (System.TimeoutException e)
{
var g = e.ToString();
return false;
}
catch (System.Net.WebException e)
{
var g = e.ToString();
return false;
}
答案 1 :(得分:0)
使用C#的is
关键字。
<!-- language: C# -->
catch (Exception e) {
if (e is LoginInfoException) // do something
else if (e is ConnectionLostException) // do something else
}
供参考,请查看this链接。
答案 2 :(得分:0)
这不是你想要的吗?
http://localhost
答案 3 :(得分:0)
这是一个捕获不同异常的过滤器的简单示例。我不太了解您正在处理的异常的层次结构,但这将允许您过滤在哪里捕获的异常。
public class CatchExceptions
{
public void SomeMethod ()
{
try
{
//some stuff that throws exceptions
}
catch (WebException e) if (e is LoginInfoException)
{}
catch (WebException e) if (e is ConnectionLostException)
{}
}
}
显然你必须弄清楚你可以用什么来过滤这样的例外;看来我上面使用的两个例子不是具体类型。您可能需要进行一些重组,以找出如何区分两者。