我正在使用Enterprise Tester API导入和更新Web应用程序上的内容。该程序将在几个小时内正常工作,但有时它会遇到这个未处理的异常:
EnterpriseTester.API.Client.dll中出现未处理的“System.Net.Http.HttpRequestException”类型异常
其他信息: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);
}
我不确定这样的事情是否可以解决这个问题,或者我是否需要研究一个完全不同的解决方案。
如果您能引导我找到适合此问题的解决方案,我将不胜感激。谢谢!
答案 0 :(得分:0)
通常最好跟踪异常的根本原因,看看是否有办法解决它。如果由于网络出现间歇性问题而发生连接错误,这是一回事,但500错误表明服务器上出现了问题。如果您有任何方法可以追踪并修复服务器端错误,那么这是最好的方法。
如果您无法控制服务器,并且只是尝试让自己的应用程序尽可能地工作,因为知道服务器偶尔会无故失败,那么try / catch解决方案将有所帮助。不过,我会提出一些额外的建议: