문제

나는 그것을 승인한다:나는 귀찮게 하지 않으로 너무 많은 예외 처리가 있습니다.나는 더 많은 작업을 수행해야합니다 하지만 내가 결코 내 어디에서 어디를 중지합니다.나 게으르다.그것은 지금까지.그것은 나는 과로와 예외 처리예요그것은 단지가있을 것 같은 많은 장소에서 심지어 작은 응용 프로그램의는 예외 처리에 적용할 수 있고 그것은이 시작될 수 있을 것 같은 느낌입니다.

I've 여주의 테스트,검증 및 침묵하기도 하지만 이것은 나쁜 프로그래밍 사고 무슨 일이 기다리고 있습니다.

그래서,어떤 예외 처리 모범 사례를 따라야 합니까?특히,어디로 가장 눈에 띄/중요한 장소가 어디 예외 처리 적용해야하고 어디에 있는 장소에 생각해야 하는가?

죄송에 대한 막연한 질문은 하지만 정말 가까이에 책을 한다.

도움이 되었습니까?

해결책

Microsoft 패턴&사례 팀 좋은 일을 통합한 모범 사례의 예외 관리로 엔터프라이즈 라이브러리 Exception Handling 응용 프로그램 차단

이벤트는 경우에 없을 사용하여 엔터프라이즈 라이브러리,나 고도 당신은 그들의 문서입니다.P&P team 일반적인 시나리오를 설명하고 모범 사례에 대한 예외 처리가 있습니다.

당신이 시작하는 내가 읽을 것을 권장합니다 다음과 같은 기사:

ASP.NET 별 기사:

다른 팁

황금 규칙에 예외 처리:

"만 잡아 당신을 처리하는 방법을 알고 있"

나는 본 적이 너무 많은 시 catch 블록는 잡지를 다시 발생시키는 예외입니다.이는 것은 아무 소용이 없습니다.단지 때문에 당신을 호출하는 방법은 잠재적인 예외를 발생시야 한다는 것을 의미하지는 않을 다루는 가능한 한 예외에서 호출하는 코드입니다.그것은 종종 완벽하게 허용되도록 예외로 전파 호출 스택 중 일부는 다른 코드는 무엇을 알 수 있습니다.어떤 경우에,그것은 유효하게 예외 전파의 모든 방법은 사용자 인터페이스 계층 다음을 잡는 메시지가 표시됩니다.그것은 될 수 있는 코드가 최고의 위치를 처리하는 방법을 모르는 상황과 사용자를 결정해야 합니다.

나는 당신 시작을 추가하여 오류가 좋은 페이지를 잡는 모든 예외 및 인쇄 약간 적은 비우호적인 메시지를 사용합니다.해야하는 로그는 모든 사용할 수 있는 정보의 제외하고 수정한다.사용자에게 알고 이 작업을 수행하고 그에게 다시 연결하는 페이지는(아마도)에 작동합니다.

지금은,사용하는 로그인을 감지하는 특별한 예외 처리해야 합니다.가 없다는 것을 기억에서 사용하길을 끄는 예외지 않는 한 당신은 계획으로 뭔가를 할 수 있습니다.이 있는 경우 위 페이지에 없에서 사용하길을 끄는 예외가 데이터베이스에서 개별적으로 모든 db 작업이 없으면 몇 가지 특정을 복구하는 방법 특정 시점에서.

기억하십시오:는 유일한 것보다 더 나쁘지 않길을 끄는 예외를 제외하고,그들을 잡고 하지 않는 아무것도 아니다.이 숨기는 것은 실제 문제입니다.

도에 대해 더 많은 것을 예외로 취급보다 일반적으로 ASP.NET speific 만:

  • 을 잡으려고 예외로 가까이 으로 가능한 그래서 당신 기록할 수 있습(로그인)만큼 정보 에 대한 예외로 가능합니다.
  • 일부를 포함한 형태의 모든,마지막 리조트에는 예외 처리기에 엔트리 포인트를 당신의 프로그램입니다.에 ASP.NET 이 될 수 있습니다 응용 프로그램 수준의 오류 처리기입니다.
  • 지 않는 경우에는 방법을 알고 제대로"처리"예외 그것이 거품까지 모두 잡을 처리할 수 있으로 취급하는"예상치 못한"예외는 아니다.
  • 를 사용하여 시험*****방법이다.NET 같은 것들에 대한 액세스 사전입니다.이것은 피요 성능 문제에(예외 처리 상대적으로 느리게)하는 경우 을 던져 다수의 예외를 말 루프입니다.
  • 를 사용하지 않는 예외 처리 컨트롤 정상적인 논리의 프로그램으로,예를 들어,에서 나가 루프를 통해 throw 문입니다.

시작으로 세계적인 예외 처리 등 http://code.google.com/p/elmah/.

다음 질문은 아래로하는 어떤 종류의 응용 프로그램은 당신이 쓰는 어떤 종류의 사용자 경험을 할 필요를 제공합니다.더 많은 풍부한 사용자 경험을 더 나은 예외 처리를 진행하고 있습니다.

예로서 고려한 사진이 사이트를 호스팅하는 디스크 쿼터,파일 크기 제한 이미지는 차원이 한계,등등.에 대한 각 오류가 당신은 단순히 반품"오류가 발생했습니다.다시 시도하십시오".또는 당신을 얻을 수 있으로 상세한 오류 처리:

  • "당신의 파일을 요구합니다.최대 filesizes 가 5 메가바이트."
  • "당신의 이미지가입 하다.최대 크기 1200x1200."
  • "당신의 앨범은 전체입니다.최대 저장 용량 1gb".
  • "오류가 있 h 업로드 할 수 있습니다.우리의 hampsters 은 불행합니다.나중에 다시 오세요."

etc.etc.

이 없다 하나의 크기에 맞는 모든 예외 처리를 위해.

라서 매우 기본적인 수준이어야 합 처리 HttpApplication.오류 이벤트에서는 글로벌입니다.맨 파일입니다.로그인이 어떤 예외가 발생하는 하나의 장소를 검토할 수 있도록의 스택 추적 예외는 아니다.

이 외에도에서 기본적인 수준의 당신이 하는 것이 이상적 예외 처리는 당신이 알에서 데이터를 복구할 수 있습니다-예를 들어를 기대할 경우 파일 잠길 수 있습니다 다음을 처리하는 IOException 및 보고에 오류가 사용자에게 돌려보내는 것은 좋은 생각이 아니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top