Я разрабатываю службу Android и сталкиваюсь с двумя разными стилями для написания кода для проверки валидации.Использование Try Catch Обработка исключений или явные проверки
Первый стиль: Использование булевых или явных проверок. В этом методе я возвращаю все значения, которые я получаю от функций. Возвращаемые значения могут быть нулевыми, закрытыми (недействительными).
boolean fbConnected = appPrefences.isFBConnected();
if (!fbConnected)
{
ShowNotification("FB not connected");
stopSelf();
return;
}
Session session = GetSession();
if (session.isClosed())
{
ShowNotification("Session not valid");
stopSelf();
return;
}
Coordinates result = getLocation();
if(result == null)
{
ShowNotification("Could not get location");
stopSelf();
return;
}
// Do something finally with Session, FB and location
Второй Стиль: Использование обработки исключений. Здесь я бросаю собственное собственное исключение из методов утилиты, если сеанс закрыт (недействителен) или если оно равно нулю. И справиться с этим следующим образом:
try
{
appPrefences.connectToFb();
Session session = GetSession();
Coordinates result = getLocation();
}
catch(FBException e)
{
ShowNotification("FB not connected");
stopSelf();
return;
}
catch(SessionException e)
{
ShowNotification("Session not valid");
stopSelf();
return;
}
catch(LocationException e)
{
ShowNotification("Could not get location");
stopSelf();
return;
}
// Do something finally with Session, FB and location
На мой взгляд, первый из них лучше, по следующей причине:
- Во втором методе, бросание исключения берет хиты производительности.
Можно ли использовать первый метод или есть некоторые реальные преимущества для использования второго метода?
@ Eric Leschinski - спасибо за рафинирование. –