我正在使用C#进行一个小型的爱好项目,但我并不精通这门语言,遇到了以下问题:
假设你使用BackgroundWorker实现异步操作。如果出现异常,则会引发RunWorkerCompleted事件,而RunWorkerCompletedEventArgs.Error将不为null。
那么下面的方式是否是处理不同异常类型的规范方式?(这里所有异常都是继承关系下的同级)
if (e.Error != null)
{
FirstKindOfException e1 = e as OneKindOfException;
SecondKindOfException e2 = e as SecondKindOfException;
...
LastKindOfException en = e as LastKindOfException;
if (e1 != null)
{
...
}
else if (e2 != null)
{
...
}
...
else
{
...
}
}
它能运行,但是...感觉不是很对。