小编gac*_*epa的帖子

在C#中检查try/catch块中的异常类型

我有一个我一直在思考的基本问题.

请参阅以下使用try/catch块的代码段:

public void doSomething()  
{  
   try
    {
        doSomethingElse()
    }
    catch (Exception ex)
    {
        if (ex is IndexOutOfRangeException || ex is DivideByZeroException || ex is Exception)
        {
            Console.WriteLine(ex.Message);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

1)如果我想要做的就是将异常消息输出到控制台,是否有必要检查if子句我得到的异常类型,或者我可以做什么

...
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
...
Run Code Online (Sandbox Code Playgroud)

2)我的理解是,如果我需要将已定义的消息输出到控制台而不是使用异常消息本身,则应该使用检查特定的异常类型 -

...
    catch (Exception ex)
    {
        switch (ex):
        {
            case IndexOutOfRangeException:
                Console.WriteLine("Personalized message #1");               
                break;
            case DivideByZeroException:
                Console.WriteLine("Personalized message #2");               
                break;
            case Exception:
                Console.WriteLine("Personalized message #3");               
                break;
        }
    }
...
Run Code Online (Sandbox Code Playgroud)

您对1)和2)的评论非常感谢.谢谢你的时间.

c# exception-handling try-catch

2
推荐指数
1
解决办法
2582
查看次数

限制文本框中的数字和字母-C#

我想限制可以在文本框中输入的数字和字母。假设我只想允许数字0-5和字母ad(小写和大写)。我已经尝试过使用带遮罩的文本框,但是它只允许我仅指定数字,仅指定字母(均无限制)或同时指定数字和字母,但顺序相同。最好的情况是:用户尝试输入数字6,但没有任何内容输入到文本框中,对于af范围以外的字母也是如此。我认为最好使用的事件将是Keypress事件,但我对如何实现限制事情一无所知。

c# winforms

1
推荐指数
1
解决办法
6378
查看次数

标签 统计

c# ×2

exception-handling ×1

try-catch ×1

winforms ×1