2011-12-12 2 views
0

사이트를 만들고 있는데 데이터베이스에 연결하기 위해 엔티티 프레임 워크를 사용합니다. 넣어야할까요데이터베이스 연결을 시도하거나 포착 하시겠습니까?

try 
    { 
var query = from es in gr.sales 
         orderby es.tilbudsNavn 
         select es; 
    } 
    catch 
{ 
lblError = "Sorry but you can't connecto to the database right now, try again later"; 
} 

내 모든 데이터베이스 연결에 대해 ??

+1

여기에 자세한 정보가 필요합니다. 왜 당신은 모든 연결 주위에 잡는 시도가 필요하다고 생각합니까? 어떤 두려운 오류가 발생합니까? 이러한 오류 등을 기록하는 로거 (log4net) 종류를 사용하고 있습니까? 일반적으로 오류가있는 경우 최소한 그걸로 뭔가를하고 싶습니다. 문제가 해결되었다고 알려야합니다. 그것. – Zoidberg

+1

상황에 따라 다릅니다. 만약 실패하면 "다시 시도"버튼을 제공하기를 원한다면 예. 아무 것도하지 않고 오류 페이지로 리다이렉트하면 거기서 처리하지 말고 다음 예외 처리기로 보내주십시오. – ThePower

답변

3

아마도 데이터베이스에 연결할 수없는 경우를 무시하고 싶지 않다면 (아마도 쓸모 없게 만들 것입니다). 오류 페이지로 리디렉션하고 가능하다면 어떤 종류의 알림을 수행하는 적절한 오류 처리 (즉, 오류 내용에 대한 세부 정보가 포함 된 이메일 보내기)가 훨씬 유용합니다.

0

가능한 모든 오류를 처리하기 위해 try catch 문을 사용하는 것이 좋습니다. 파일 처리, 데이터베이스 처리, 응용 프로그램의 모든 입출력은 일반적으로 오류를 복구 할 수있는 오류 처리 코드를 래핑하거나 유익한 메시지와 사용자 및 관리자에게 알림으로 종료하는 것이 좋습니다.

0

catch 절에서 유용하게 사용할 수있는 경우에만. 결코 모든 빈 오류를 삼킬 빈 절대로 catch 절을 사용하십시오.

1

데이터베이스에 대한 액세스를 한 곳에서 관리해야합니다. 그리고 예, 단일 장소에서 connect-statement는 로깅 및 오류보고를 용이하게하기 위해 try-catch로 둘러 쌓여 야합니다.

0

Try-Catch를 사용하여 여러 매개 변수로 하나의 메서드를 만드는 것이 좋습니다. 그 중 하나는 lambda 또는 func이거나 실행하려는 동작입니다.

모든 처리는 한 곳에서 처리됩니다.

또한, 에릭 Lippert의에 의해 예외에 대한 좋은 기사가 여기에 대해 here 또는 here

0

http://blogs.msdn.com/b/ericlippert/archive/2008/09/10/vexing-exceptions.aspx

이 읽을 수 있습니다. 그것은 무엇을 붙잡고 무엇을해야하는지 설명합니다.

예를 들어 나는 데이터베이스 연결 예외를 "외인성"종류로 지정해야합니다. 적어도 적절한 오류 처리 및 DB 액세스 중요한 경우 해당 메시지/로깅 응용 프로그램을 종료하십시오.

관련 문제