나는 다음과 같은 코드를 가지고 있고 예외에 대한 자세한 정보는 제공하기 위해 노력하고있어 :항상 내부 예외를 유지해야합니까?
int id = 5;
try
{
var record = db.MyTable
.Where(x.Id == 5)
.Single();
// more code here ...
}
catch (InvalidOperationException ex)
{
string message = string.Format("Record doesn't exists for Id {0}", id);
throw new InvalidOperationException(message, ex);
}
나는이 예외 스택 트레이스가 아닌 다른 많은 관련 정보를 제공하지 않는 경우에도 내부 예외를 유지해야을? 위 코드처럼 또는;
예외를 무시하고 필요한 것을 던져야합니까? like throw new InvalidOperationException(message);
로직을 구동하기 위해 예외를 사용하는 이유는 무엇입니까? 'Single()'대신'FirstOrDefault()'를 사용하고 결과를 검사하십시오. 그런 다음 항목이없는 경우 예외를 throw 할 수 있습니다. – xxbbcc
예외에 대해 신경 쓰지 않는다면 오류로 포함시키지 마십시오. 그것은 당신이 결정할 사항입니다. 그렇다면 다시, 해를 끼치는 데 어떤 해가됩니까? 어쩌면 나중에 필요할거야. – vcsjones
@vcsjones의 경우 결과는 'MyTable'에 들어있는 값이됩니다. 아마도 정수가 아니라 데이터 엔티티가 될 것입니다. 물론, 묻는 사람은 확실히 알 수있는 위치에있는 유일한 사람입니다. –