你可以查一下你的SDK,里面有很多的Exception的定義,其基類其實(shí)都是System.Exception一樣。 但System.Exception只提供了一些一般異常的處理。更多的需要專業(yè)的來處理。 比如找不到文件,你必須捕捉System.IO.FileNotFoundException這個異常。 在一段代碼中,你如果既進(jìn)行了找文件、找路徑、找數(shù)據(jù)庫那你很可能拋出四個異常,即System.Exception、System.IO.FileNotFoundException、System.IO.DirectorNotFoundException、System.Data.SqlClicent.SqlException(以上名字純憑記憶寫出,可能有錯,自己查一下)。你在程序中需要對此一一捕捉,才能找到正確的錯誤信息。 當(dāng)然,如果你堅(jiān)信自己的代碼沒有問題,比如你找路徑是找的C盤根目錄,那么基本上不會有問題,那么你可以不去捕捉這個異常。雙比如一般的System.Exception大家也不進(jìn)行特意捕捉的。 比如你說的,你只捕捉System.Exception, 如下: try{ [openDataBaseCode] } catch(System.Exception e) { MessageBox.show("錯誤:"+e.Message,"系統(tǒng)錯誤"); } 如果你的代碼中打開數(shù)據(jù)庫確實(shí)出錯了,那程序是捕捉不到的,所以你必須再加上一個 catch(System.Data.SqlClient.SqlException e) { MessageBox.show("錯誤:"+e.Message,"數(shù)據(jù)庫錯誤");
} 另外,我使用的System.Data.OleDb操作數(shù)據(jù)庫的類,所以我不會調(diào)用System.Data.Sqlclient.SqlException這個錯誤。 這樣明
|