使用此代码时
try
{
transfer.TransferData();
}
catch (SmoException smoex)
{
//Do something
}
catch (Exception ex)
{
//Do something else
}
异常始终由第二个catch语句捕获。 有人知道为什么会这样吗?
先谢谢
答案 0 :(得分:1)
使用它来确定您实际获得的异常:
try
{
transfer.TransferData();
}
catch (Exception ex)
{
var theRealExceptionTypeName = ex.GetType().Name;
}
答案 1 :(得分:0)
这是因为异常不是SmoException
。
它是Exception
或源自Exception
的其他异常类型,但不是SmoException
。 SmoException
将被第一个处理程序捕获,如果它真的是SmoException
或派生自SmoException
的类。希望这句话不像打字那样令人困惑!
进一步阅读例外和异常处理:
http://msdn.microsoft.com/en-us/library/ms173160(v=vs.80).aspx
文档没有说明抛出了什么异常: