可以在不使用ToString的情况下在switch语句中获取Exception类型吗?

时间:2017-11-24 11:11:38

标签: c#

我需要在switch的情况下检查异常的类型,并为特定的异常执行不同的任务,我现在所做的是创建一个在抛出异常时将被调用的方法,所以:

private static void ShuntException(Exception ex)
{
    switch (ex.InnerException)
    {
        case System.Net.WebException:
            DoSomething();
            break;
    }
}

基本上是我遇到此错误的问题:

  

错误:' WebException'是'类型',在给定的上下文中无效

我可以使用GetType().ToString()修复此情况,然后手动编写Exception类型:

private static void ShuntException(Exception ex)
{
    switch (ex.InnerException.GetType().ToString())
    {
        case "System.Net.WebException":
            DoSomething();
            break;
    }
}

我添加的最后一个例子运行良好,但我更喜欢第一个没有为编译器显示的错误工作,我错过了什么或我做错了什么?

感谢您的帮助。

0 个答案:

没有答案