3
我有用C#編寫的webservice。當服務器發生錯誤時,我想通知用戶客戶端。這通過拋出異常服務器端正常工作,然後發送到我的錯誤處理程序客戶端。C#Webservice:在JSON中拋出帶有額外屬性的異常
但是,當我拋出異常時,我想要設置一個屬性來描述我認爲錯誤在這一點上有多嚴重。因此,我可以決定客戶端如何顯示錯誤:
WebService.Method(some_value, handle_response, handle_error);
function handle_response (response) {
//Do something...
}
function handle_error (error) {
if(error.level === 'Critical') {
//Show critical message.
} else if(error.level === 'Warning') {
//Show warning message.
} else
...
}
}
我的解決方案迄今已創建一個自定義的異常從System.Exception
繼承。 我的webservice以JSON
格式化結果返回。
我的問題是如何讓我的財產通過客戶端JSON響應?
我以前用過類似的東西,但這次我想錯誤處理要經過ASP.NET Web服務的錯誤處理 - 見我的編輯。 – Chau 2010-02-26 12:58:44
你使用WCF或古典(舊式)web服務? WCF有一個地方可以處理所有的異常(每種方法都沒有try/catch)。 – garik 2010-02-26 13:54:58
我想,這是使用「屏蔽異常」模式的最佳選擇(方式),而不是向客戶端顯示內部異常(真正的異常)。這是一個安全問題。服務器應處理異常並將用戶友好的消息返回給客戶端 – garik 2010-02-26 14:05:34