我有一个我一直在思考的基本问题.
请参阅以下使用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)的评论非常感谢.谢谢你的时间.
我想限制可以在文本框中输入的数字和字母。假设我只想允许数字0-5和字母ad(小写和大写)。我已经尝试过使用带遮罩的文本框,但是它只允许我仅指定数字,仅指定字母(均无限制)或同时指定数字和字母,但顺序相同。最好的情况是:用户尝试输入数字6,但没有任何内容输入到文本框中,对于af范围以外的字母也是如此。我认为最好使用的事件将是Keypress事件,但我对如何实现限制事情一无所知。