Лучшие практики для обработки ошибок Try Catch - PullRequest
4 голосов
/ 06 августа 2010

Я стараюсь не возвращать неправильное значение в улове, но у меня проблемы с поиском лучшего решения, чем это:

    private SecurityLevel ApiGetSecurityLevel()
    {
        try
        {
            return _BioidInstance.GetSecurityLevel();
        }
        catch
        { 
            return SecurityLevel.High;
        }
    }

Есть ли лучший способ сделать это, поэтому явернуть неправильные значения?Я не могу изменить перечисление SecurityLevel.

Ответы [ 11 ]

0 голосов
/ 06 августа 2010
public class BioId { public SecurityLevel SecLevel { get; set; } }

private bool ApiGetSecurityLevel(BioId bioId)
{
    try
    {
        bioIdSecLevel = bioId.GetSecurityLevel();
        return true;
    }
    catch (PossibleException)
    {
        return false;
    }
}

Затем используйте его с if, и если он возвращает false, то пусть код обработки определит уровень безопасности по умолчанию для его BioId.

Хотя я согласен со всеми остальными, что на практике вы хотите простопозвольте пузырю исключения и пусть верхние уровни справятся с ними.Хотя иногда существуют стандарты, не позволяющие исключениям пузыриться, потому что каждый слой, через который они всплывают, может, по-видимому, снижать производительность, но я говорю, что в любом случае у вас не должно быть слишком много слоев, лук сложный, как огры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...