Какое исключение поднимает SMO Transfer? - PullRequest
1 голос
/ 22 марта 2011

При использовании этого кода

try
{
    transfer.TransferData();
}
catch (SmoException smoex)
{
    //Do something
}
catch (Exception ex)
{
    //Do something else
}

Исключение всегда перехватывается вторым оператором catch. Кто-нибудь знает, почему это происходит?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 22 марта 2011

Используйте это, чтобы определить, какое исключение вы действительно получаете:

try
{
   transfer.TransferData();
}
catch (Exception ex)
{
    var theRealExceptionTypeName = ex.GetType().Name;
}
0 голосов
/ 22 марта 2011

Это происходит потому, что исключение не SmoException.

Это либо Exception, либо другой тип исключения, производный от Exception, но не SmoException.SmoException будет перехвачен первым обработчиком, если это действительно SmoException или класс, производный от SmoException.Надеемся, что это предложение не так запутанно для чтения, как для ввода!

Дальнейшее чтение об исключениях и обработке исключений:

http://msdn.microsoft.com/en-us/library/ms173160(v=vs.80).aspx

Документация не говориткакие исключения выбрасываются:

http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.transfer.transferdata.aspx

...