雖然使用此代碼SMO Transfer Raise有哪些例外?
try
{
transfer.TransferData();
}
catch (SmoException smoex)
{
//Do something
}
catch (Exception ex)
{
//Do something else
}
異常總是由第二catch語句捕獲。 有人知道爲什麼會發生這種情況嗎?
由於提前
雖然使用此代碼SMO Transfer Raise有哪些例外?
try
{
transfer.TransferData();
}
catch (SmoException smoex)
{
//Do something
}
catch (Exception ex)
{
//Do something else
}
異常總是由第二catch語句捕獲。 有人知道爲什麼會發生這種情況嗎?
由於提前
使用此來確定什麼異常,你實際上得到是:
try
{
transfer.TransferData();
}
catch (Exception ex)
{
var theRealExceptionTypeName = ex.GetType().Name;
}
這是因爲該異常不是一個SmoException
。
它可以是Exception
或衍生自Exception
的其他異常類型,但不是SmoException
。如果SmoException
是SmoException
,或者是SmoException
的類,則SmoException
將被第一個處理程序捕獲。希望這句話不像閱讀和打字一樣令人困惑!
http://msdn.microsoft.com/en-us/library/ms173160(v=vs.80).aspx
文檔不說都扔什麼異常:
對異常和異常處理擴展閱讀
謝謝我會試試這個,讓你知道 – 2011-03-23 07:23:49
TransferException - >使用Microsoft.SqlServer.Management.Common; 謝謝! – 2011-03-23 09:05:50