2010-03-29 6 views
0

그냥 일반적인 질문인데 오류를 처리해야합니까?try catch (AGAIN)로 오류 처리

필자는 그의 동료 중 한 사람과이 논쟁을 벌이고 있었는데, 그의 코드에서 try 문장을 둘러싼 많은 장소가 보였고 catch 문에는 아무것도 없다.

나는 항상 오류를 처리하거나 사용자를 숨기지 않는 것이 좋다고 생각했다. (로그 파일에 로그를 남기는 것을 제외하고).

는 다른 사람들이

감사를 어떻게 생각하는지 알고 싶어합니다.

답변

2

예외를 처리 할 수없는 경우 을 catch하지 않습니다. 호출 스택을 위로 올라가는 사람이 일 수 있습니다.이 제대로 처리 할 수 ​​있습니다. 축하합니다. 이제는 사용자가 자신의 직업을 수행하지 못하게 할 수 있습니다. < golfclap/>.

1

예외를 잡아 내고 "조용히하는"습관은 사악합니다! 나는 모든 SOers 중 99.99 %가 그것에 동의 할 것이라고 생각합니다.

예외 처리 모범 사례에 대해서는 매우 nice article from CodeProject입니다. 어떤 섹션 중 하나에 최선을 다할 것 같니?

가장 나쁜 것은 catch (Exception)이며 빈 코드 블록을 넣는 것입니다. 절대하지 마.

그 소금을 가치가있는 예외 처리 기사는 예외적 인 개념을 언급하고 어떤 식 으로든 그것을하지는 않을 것입니다.

0

Sith 만 절대적으로 거래합니다. 진지하게, 나는 단지 그것을 방치하고 계속 나아가는 것이 바람직했던 곳에서 최근에 가로 지른 적어도 하나의 인스턴스를 생각할 수있다. 우리는 최근 비동기식 AJAX 요청을 MVC 컨트롤러에 전송하여 사내에 기록하는 사내 클릭 추적 솔루션을 구현했습니다. 로그에 기록되지 않는지 신경 쓰지 않으며 원하지 않는 오류 로그로 자체 로그를 채우고 싶지 않습니다. 그렇다면 왜 catch 블록에서 아무 것도하지 않는 오버 헤드를 신경 써야합니다. catch 블록에 코드를 추가하여 오류가 발생했을 때 적어도 카운터를 늘리는 방법을 고려했지만 현재로서는 그럴만 한 이유가 없습니다.

실제로 게으르지 않은지 또는 실제로하지 않는 것이 좋은 이유가 있는지 여부에 달려 있습니다.

나는 그것이 일반적으로 나쁜 습관이기 때문에 아마 말할 것이다. 용감함에 대한 점수를 얻습니까?


try 
{ 
    //CODE 
} 
catch 
{ 
    LogException(); 
    //and/or 
    RollbackTransaction(); 
    //and/or 
    ShowFriendlyMessageToUser(); 
    //and/or 
    DoSomethingUsefullWithTheException(); 
    throw; //This is optional 
} 

이 아무 의미도하지 않습니다 당신이 그것으로 할 수있는 일이 있다면

0

당신은 예외를 처리해야하지만, 나는 그것을 많이


try 
{ 
    //CODE 
} 
catch 
{ 
    throw; 
} 

EDIT 1을 보았다 그리고 이런 식으로하면 좋은 주장이 필요합니다. 어쨌든 해고 당할 수도 있습니다. -p


try 
{ 
    //CODE 
} 
catch 
{ 
    //HIDE TO THE WORLD THAT THIS IS FAILING 
}