2015-01-08 47 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查找或兩次)。當你自動輸入時,你沒有看到新的答案,如果我一直在輸入答案,我的答案也會看起來像這兩個。 –