如果爲空,我有一個Web應用程序請求和一個基本的異常被拋出。Web應用程序請求
任何人都可以推薦比泛型異常更好的東西嗎?我確定我的客戶想要一些讓用戶知道請求爲空的東西,或者甚至強制請求不爲空。
代碼示例:提前
如果爲空,我有一個Web應用程序請求和一個基本的異常被拋出。Web應用程序請求
任何人都可以推薦比泛型異常更好的東西嗎?我確定我的客戶想要一些讓用戶知道請求爲空的東西,或者甚至強制請求不爲空。
代碼示例:提前
的用戶是不會知道的異常類型之間的差異,指望他們作用於特定type
public async Task <Lead> BuildLeadFromRequest(object request)
{
var req = request as WebApplicationRequest;
if (req == null)
throw new Exception(); //TODO: Something better than throwing an exception
}
由於是傻瓜打賭,對用戶來說有用的是一個有意義的消息,模糊的異常名稱和堆棧跟蹤僅對我們這些開發人員有用。
通過堆棧跟蹤的操作向用戶報告狀態也不是一個好主意,但我不明白爲什麼你的方法將被調用一個null來開始,所以這是一個關鍵的異常,應該是thrown
。
有許多種方法可以讓更多的信息,但最簡單的是這樣的:
if (req == null)
throw new Exception("Request was not valid.");
缺少了什麼你的問題是,這可能是如何發生的,你的異常細節可以說明它是如何可能的。
if (req == null)
throw new Exception("Request was not valid. Perhaps you did operation A instead of doing expected operation B... blah blah");
很明顯,你可以創建的Exception
或ApplicationException
子類,但是這是你的電話。
現在爲什麼可以用null調用這個方法是另一個問題。
我同意這一點。我不熟悉C#(和ASP.NET MVC,如果這是OP使用的),但是OP可能只是重定向到404頁面,如果函數的參數格式不正確或不正確。 –
只要有有用的信息說明你爲什麼要顯示一個404,我就會遇到的最大的問題就是沒有告訴我任何東西。 NullRef異常很明顯..實際上這個OP異常真的是什麼,但是在這種情況下會出現一個很大的問號。 –
首先爲什麼你沒有'公共異步任務BuildLeadFromRequest(WebApplicationRequest請求)'?如果由於任何原因你不能改變它,那麼你可以使用'ArgumentException'和一個適當的錯誤信息。 –