處理異常我有一個ASP.NET Web Forms應用程序與UI,服務層和庫層。如何在多層的ASP.NET Web應用程序
一些在我服務層的方法與一個Web服務進行通信,因此,我想換都到Web方法的調用在Try-Catch-Finally
結構。
假設我有我的服務層以下方法:
public RegistrationDetails GetRegistrationDetails(int userId)
public bool RegisterUser(UserData myUserData)
凡RegistrationDetails
和myUserData
的對象類型(類)。
我擔心的是:如果我創建一個Try-Catch-Finally
來包裝調用Web服務上面列出的方法的實現中,如果有一個例外,我怎麼能返回的消息字符串如果返回類型RegistrationDetails
和bool
?
我在考慮給每個返回對象添加一個屬性,但我不知道這是否是一個好的解決方案。例如,而不是使用bool
:
public class RegisterResponse
{
public bool isRegistered { get; set; }
public string ExceptionMessage { get; set; }
}
public RegisterResponse RegisterUser(UserData myUserData)
,然後檢查ExceptionMessage是null
或String.Empty
。這是一個好方法嗎?由於
我通常讓異常冒泡到一個窗體並在那裏處理它。當您在較低級別捕獲特定異常時,可能是因爲錯過了某處之間錯誤的真正原因。在較低的水平,我只是把它們扔出來...... – IrishChieftain
感謝您的回答。我想捕捉所有異常的原因是爲了避免用戶看到典型的ASP.NET錯誤頁面。我想要處理它們並向用戶(通過用戶界面)顯示最佳信息,以便簡化問題解決過程。 – CiccioMiami