Если вы хотите перехватить исключительную ситуацию и обработать ее, один из способов сделать это - использовать возвращаемый объект, подобный этому:
private OperationResult GetData()
{
List<int> theData = new List<int>();
try
{
theData = ProcessThatGetsData(); //Error occurs in here
return new OperationResult { Success = true, Data = theData };
}
catch (Exception exc)
{
return new OperationResult { Success = false };
}
return theData; //What should be returned here?
}
public class OperationResult
{
public bool Success { get; set; }
public IList<int> Data { get; set; }
}
Это вариант, однако я бы предпочел , а не , чтобы поместить здесь оператор try catch, только на уровне, который вам действительно нужен ... в этом случае ваш код не нуждается в изменить или беспокоиться о типе возврата.
Везде, где вы вызываете метод GetData, поместите вызов в оператор try / catch, и все будет в порядке.
Помните, всегда обрабатывайте исключения на том уровне, на котором они должны обрабатываться, не переусердствуйте.
Надеюсь, это поможет