概述
在异步调用一个方法时,由于不在一个线程内,异常的处理不同于普通同步调用,但可以在EndXXX时,使用try{}catch{}来捕获。
public
static
void
main(
string
[] args)
{
string errorMessage = " this is error message " ;
Action < int > myWaiter = i =>
{
Thread.Sleep(i);
// 抛出一个异常
throw new ApplicationException(errorMessage);
};
myWaiter.BeginInvoke( ar =>
{
try
{
// 在这里捕获异常
myWaiter.EndInvode(ar);
}
catch (ApplicationException exp)
{
Debug.Assert(exp.Message == errorMessage);
Console.WriteLine(exp.ToString());
}
};
Console.ReadKey();
}
{
string errorMessage = " this is error message " ;
Action < int > myWaiter = i =>
{
Thread.Sleep(i);
// 抛出一个异常
throw new ApplicationException(errorMessage);
};
myWaiter.BeginInvoke( ar =>
{
try
{
// 在这里捕获异常
myWaiter.EndInvode(ar);
}
catch (ApplicationException exp)
{
Debug.Assert(exp.Message == errorMessage);
Console.WriteLine(exp.ToString());
}
};
Console.ReadKey();
}
最后
以上就是娇气黄蜂为你收集整理的异步调用方法时异常的捕获的全部内容,希望文章能够帮你解决异步调用方法时异常的捕获所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复