WCF服務端方法有沒有必要加try catch?我看書上,WCF是有例外處理機制的,會把錯誤發送到客戶端,客戶端能try catch到錯誤,那么WCF服務端的方法要不要加try catch,我自己測驗,不加try catch是可以的,但是不放心,萬一有的例外無法捕獲,是不是會造成服務端崩潰?
uj5u.com熱心網友回復:
。。。。要啊當然要處理例外,但是你可以全域處理例外,不用每個地方都try catch
uj5u.com熱心網友回復:
你問的都不是技術問題啊,這都是系統需要不需要比如1000client 經常報錯,你的領導半夜被投訴,早上發火,讓你們排查問題,說“必須解決,加班熬夜都得解決,不解決誰都不準回家,都給我住公司里”
現在問題來了,請告訴我錯誤在哪里?怎么發生的?什么條件下發生的,我們怎么復現這個錯誤?
你不管他,現在沒有記錄,你也不知道這錯誤怎么復現。程式員都知道的問題,我們不煩錯誤,我們煩的是你告訴我錯誤,我測驗千百遍都無法復現他
uj5u.com熱心網友回復:
不寫try..catch那對自己的代碼是多么自信。uj5u.com熱心網友回復:
就像你前面發的那個代碼,很明顯就是這么來的。出問題了,被投訴。必須解決,不解決扣錢
ok?到底怎么出問題了?不知道
反正不知道,反正要改 ?怎么改,怎么優化? 加執行緒,加異步,加防刷,還不行怎么辦?加ngnix分流
so,你們都知道我經常反對博客園的,因為上面這些都是博客園告訴你們的,至于why?不知道的,因為你自己都不知道到底哪錯了,反正博客園說這樣ok,那就這樣把,碰巧,還真OK了
ps:你那代碼其實還有問題,例外就default(T),那么問題來了。你是真的default還是例外了??比如曾經有人問我他們經常獲取不到資料,上層按照博客園上一頓折騰,最后發現其實是最底下那個人把例外吃了(本來是最底下的問題,但是你吃了,上面排查幾個月各種優化各種折騰,毫無效果)
uj5u.com熱心網友回復:
有必要吧,看功能的復雜程度。為了更方便的發現問題,還有個性化處理例外。
在呼叫的某層次,都可能需要重新封裝一下 catch 到的 例外,然后再 throw 給外面。
比如 :直接資料庫訪問層可以根據現在訪問的是哪個表的方法之類的,記錄一下具體相關資訊,拋給業務層,業務層記錄下這是哪個業務,哪個實作模塊等等,再拋給 WCF實作層,實作層組織一下資訊結構,自己記錄一下運行日志,且回傳給客戶端。
客戶端根據這個資訊在界面上顯示一下比較“專業”的錯誤資訊。
客戶在客戶端拍個圖片發給你,你根據關鍵資訊就知道哪兒錯了。
當然這是理想化的情況
uj5u.com熱心網友回復:
我是花了一天的時間糾結這兩個問題,不是加不加try catch的問題,我是想在攔截器里統一處理例外,然后方法中再也不寫try catch。想一下,你寫100個方法,結果有10個忘了寫try catch,這是經常出現的情況,寫著寫著就忘了寫try catch。如果WCF有機制統一處理了例外,我就不用寫try catch,不用再擔心忘了寫,這個意義重大!意義重大!
uj5u.com熱心網友回復:
嗯,關鍵地方一個也足矣。到處都是的話,內層呼叫的還可能會屏蔽問題,更難找到問題所在。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/188503.html
標籤:C#
上一篇:資料上傳下發,同步問題
