[英]How can I convert an HttpError into an Exception type?
有沒有一種簡單的方法將\\ cast HttpError
轉換為Exception
?
我正在考慮利用反射來實例化基於HttpError.Message
內容的HttpError.Message
- 這是完成我想要做的事情的最佳方式嗎?
您可以隨時創建自己的自定義異常,並使用HttpError.Message屬性來獲取合理的消息:
throw new YourHttpException(httpError.Message);
包括HttpError
也可能是有益的,因為它是潛在錯誤的完整字典。
您無法將HttpError
轉換/轉換為Exception
。 相反,您可以使用HttpError.Message創建一個新的Exception (或您自己的自定義異常)
throw new Exception(HttpErrorObject.Message);
編輯:如果你想要自己的自定義異常,那么你可以創建一個類,如:
class MyHttpException : Exception
{
public HttpError HttpErrorObject { get; set; }
public MyHttpException(string Message, HttpError ErrorObject)
: base(Message)
{
this.HttpErrorObject = ErrorObject;
}
}
然后你可以使用它像:
HttpError httpErrorObject = new HttpError("404");
throw new MyHttpException(httpErrorObject.Message, httpErrorObject);
包括原始的錯誤對象,正如@Reed Copsey在他的回答中所說的那樣 。
事實證明,使用反射非常簡單,但是你會丟失一些元素,包括堆棧跟蹤。
Type exceptionType = Type.GetType(httpError["ExceptionType"].ToString());
ConstructorInfo exceptionConstructor = exceptionType.GetConstructor(new[] { typeof(string) });
throw (Exception)exceptionConstructor.Invoke(new object[] { httpError["ExceptionMessage"] });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.