Как говорит TrovB30, проверка, существует ли она перед попыткой создания, вероятно, лучший способ сделать это.
Я полагаю, у вас есть ссылка на объект SPSiteCollection или объект SPWebApplication? В этом случае я бы, вероятно, просмотрел его, чтобы увидеть, существует ли он уже. Это может показаться утомительным, но, вероятно, будет более эффективным, чем процедура try-catch:
private bool SiteExists(SPWebApplication webApp, string siteUrl)
{
var sites = webApp.Sites;
//Add slash to enable comparison
siteUrl = "/" + siteUrl;
foreach (SPSite site in sites)
{
if (site.ServerRelativeUrl.Equals(siteUrl) == true)
{
return true;
}
}
return false;
}