我正在使用Enterprise Tester API來導入和更新Web應用程序上的內容。該方案將工作的優良幾個小時,但偶爾它運行到這個未處理的異常:如何處理Web API控制器拋出的異常?
型「System.Net.Http.HttpRequestException」未處理的異常發生在EnterpriseTester.API.Client.dll
附加信息:System.Net.Http.HttpRequestException狀態代碼,表明沒有成功:500(內部服務器錯誤)
在這一點上,在這個地方發生異常行的Visual Studio休息。但是,當我點擊「繼續」時,程序將再次正確執行。
從網上搜索,似乎我應該使用try catch
塊來處理異常。我也希望能夠稍微等一下,然後再次執行相同的行以訪問API。
try
{
client.UpdateScriptRun(Id,Run);
}
catch (HttpRequestException e)
{
Console.Writeline("HttpRequestException: {0}", e.Message);
Thread.Sleep(1000);
client.UpdateScriptRun(Id,Run);
}
我不確定這樣的事情是否可以解決問題,或者如果我需要查看一個完全不同的解決方案。
如果您能指導我找到適合此問題的解決方案,將不勝感激。謝謝!
您上面發佈的代碼是否在WebApiController中運行?如果第一次調用引發異常,爲什麼要讓POST掛起?爲什麼不從你的控制器返回500,然後讓你的客戶再試一次? – maccettura
@maccettura感謝您的問題。上面的代碼來自一個控制檯應用程序。該應用程序正在將我的桌面上的一千個文檔/腳本導入到Enterprise Tester。 「UpdateScriptRun」是我的程序調用POST的API方法之一。如果我返回500,那麼客戶端將不得不從頭再運行這個程序。你會建議作爲替代解決方案嗎? – MShaw