我正在設計一個小型庫,它可以幫助登錄到不同的目的地(文件,數據庫等)。但是,如果出現錯誤(例如無法寫入文件),我不確定是否應該拋出異常?應該記錄代碼拋出異常?
如果我拋出異常(與記錄相關),使用我的庫的應用程序開發人員可以清楚地看到記錄不會按預期發生。另一方面,它可能是問題的另一個來源。
如果我壓制例外而只是悄悄地不記錄,開發者可能會錯過重要的信息,例如,數據庫無法到達。
是否有任何建議,一般準則(如果一個然後b等)如何處理這個?
正如我至今讀:
Microsofts Guidelines for Exceptions狀態:
✗沒有公有成員,可以基於一些選項扔與否。
因此,選擇是否拋出異常將違反這些準則,但如果不確定拋出異常的可能性有多大,它們不會發出拋出異常的聲明。
我還在this question/answer中讀到我不應該捕捉異常,因爲我無法對它們做任何有意義的事情,但問題是針對企業級系統,而我的問題是在更一般的層面上提出的。
這似乎是一個設計決定。我不認爲有一個絕對正確的答案。 – 2015-02-10 15:47:15
^同意。這對於https://programmers.stackexchange.com/來說似乎更合適,儘管它可能仍然不符合堆棧交換問題的一般要求,因爲答案可能是有見地的。 – ajp15243 2015-02-10 15:47:56
一種可能性是將輸出異常輸出到「Trace」。他們可以使用你的庫來正常登錄,但他們可以選擇配置'Trace',並且記錄錯誤將寫入文件或Windows事件日誌中,這應該總是成功。 – 2015-02-10 15:49:46