2
Image.FromStream
當您上傳不是圖片的東西時會拋出InvalidArgumentException
。Try/catch Image.FromStream()沒有捕獲using語句的其餘部分?
所以我有類似下面的代碼:
public void ActionMethod()
{
try
{
using (var image = Image.FromStream(httpPostedFileBase.InputStream))
{
MoreStuffToDo(image);
}
}
catch (InvalidArgumentException e)
{
ModelState.AddModelError("", "File is not a valid image");
}
}
問題是,InvalidArgumentException也捕捉具有無關Image.FromStream
,即MoreStuffToDo()
我能想到的唯一解決方案是東西刪除使用語句。但這聽起來像是一個不好的決定。
這樣做的正確方法是什麼?所以我們在Image.FromStream()
方法中都有一個try/catch,並且確保圖像在所有情況下都能正確處理?
一些需要注意的是,即使當異常與你的代碼拋出,你的形象仍然是妥善處置。這就是「使用」的工作方式。一旦代碼,現在問題如何,離開使用部分,對象配置。 – Russ