2015-01-08 1 views
0

데이터베이스를 사용할 수 없을 때마다 내 코드에서 경고 또는 무언가를 제공하고 싶습니다. (그래서 내가 연결 문자열에 주석을 달았습니다.)하지만 내 웹 사이트가 충돌합니다.예외 처리 (connection.Open()이 실행되는지 확인하고 싶습니다.)

이 연결 문자열 (로그인 페이지, 등록 페이지, 사용자 패널 페이지 등)을 사용하여 프로그램의 많은 부분이 있었기 때문에이 클래스를 만들었으므로 앞으로 뭔가를 변경하고 싶다면이 문자열 만 사용하십시오 나는 바꿔야 해. 당신이 장소에 넣어해야하지만

namespace Fatture.Data.User 
{ 
    public class DbConnection 
    { 
     public MySqlConnection ConnessioneDb() 
     { 
     MySqlConnection conn = new MySqlConnection(/*ConfigurationManager.ConnectionStrings["ConnectionStringloginDb"].ConnectionString*/); 
     try 
     { 
      conn.Open(); 
     } 
     catch (Exception ex) 
     { 
      throw new Exception("I can't connect to the database", ex);    

     } 
     return conn; 
     } 
    } 
} 
+2

당신은 가능성이 잡힌되지 않습니다 새로운 예외를 던지고있다. –

+2

왜 새 예외가 발생합니까? 그 예외는 어디서 처리합니까? 예외가 처리되지 않은 경우 예가 응용 프로그램이 중단됩니다. – David

+0

정확한 문제는 무엇입니까? "내 웹 사이트가 방금 충돌하는 것"은 무엇을 의미합니까? 응용 프로그램 수준의 오류 처리가 있습니까? –

답변

2

사용 예외 처리 ...

var connector = new DbConnection(); 

try 
{  
    var connection = connector.ConnessioneDb(); 
} 
catch (Exception ex) 
{ 
    // show message to user: database not available 
} 

모든 곳에서 데이터베이스를 액세스 할 수 있습니다. 대신 전체 사이트에 대한 오류 처리를 설정할 수도 있습니다.

1

캐치를 제외하고 ...

try 
{  
    var conn = new DbConnection().ConnessioneDb(); 
} 
catch (Exception ex) 
{ 
    // Notify user here 
} 
+0

왜 그렇게 말합니까? 내가 너 한테 게시했기 때문에? – Rohit

+0

코드 블록이 동일하지 않을 수 있습니까? – Rohit

+0

얘들 아, 대답은 3 분 간격으로, 코드 작성에 걸리는 시간 (MSDN 조회 또는 2 번 수행해야하는 경우) 내에 충분합니다. 자동으로 입력하는 동안 새로운 답변을 볼 수 없습니다. 답변을 입력하면 내 대답도이 두 가지처럼 보입니다. –