İçeriğe geç

Throw from finally (ARCH404)

Anahtar dotnet.exception.throw-from-finally · Önem error · Kategori exception

finally bloklarından istisna fırlatmak, try veya catch bloğundaki orijinal istisnayı maskeleyerek asıl hata nedenini gizler.

try
{
_repository.Save(order);
}
finally
{
if (!_connection.IsClosed)
throw new InvalidOperationException("Connection still open");
}
try
{
_repository.Save(order);
}
finally
{
if (!_connection.IsClosed)
_logger.LogWarning("Connection still open");
}

finally içinde fırlatmak yerine durumu loglayın veya temizleme mantığını yeniden yapılandırın. Gerekirse kural proje/workspace bazında except/ignore ile bastırılabilir.