У меня есть этот код из примера PushSharp, в котором подробно описано, как обрабатывать исключения. По какой-то причине все условия else
выделены Resharper, указав, что The expression is always false
. Я не понимаю, как это возможно.Resharper утверждает, что условие if else никогда не будет удалено, почему?
// ex is an Exception passed in to the method
if (ex is NotificationException)
{
// Deal with the failed notification
var notification = ((NotificationException)ex).Notification;
var logItem = new PushLog($"{typePrefix} Notification failed", $"Notification Failed: {notification}");
_pushLogRepo.Insert(logItem);
}
else if (ex is DeviceSubscriptionExpiredException) // Resharper says this is always false
{
// exception handling code...
}
else if (ex is RetryAfterException) // Resharper says this is always false
{
// exception handling code...
}
else
{
Console.WriteLine("Notification Failed for some (Unknown Reason)");
}
Может кто-нибудь объяснить, как это возможно? Я не понимаю, как это может быть. Вот скриншот от VS2015, который немного яснее с подсветкой синтаксиса - проигнорируйте ошибку, я нахожусь в центре рефакторинга.
Какое исключение оно передается? Что это значит? – oppassum
Это простое «Исключение». Это обеспечивается методом обработки ошибок, предоставляемым библиотекой, которую я использую. –
, что библиотека может вызывать определенный тип исключения, даже если он входит в качестве общего. Или это может быть ошибка resharper. кто знает. – oppassum