我有这样的控制台程序:
int a;
try
{
Console.Write("Input = "); a = Convert.ToInt32(Console.ReadLine());
if (a<0)
{
throw new Exception("Input Can't < 0");
}
}
catch (Exception ex)
{
Console.WriteLine("Something error");
}
Console.ReadKey();
如果我输入字母,它会显示&#34; Something error&#34;。如果我输入数字-20,它还会显示&#34; Something error&#34;。
我知道如果我将块catch中的代码更改为Console.WriteLine(ex.Message);
,它可以显示我的用户定义异常。但是,我不想使用它。
检查异常是构建还是用户定义的一些技巧?
答案 0 :(得分:1)
您应该定义一个自定义异常类,并使用专用的catch块检查它。
通过派生Exception
类来定义新的异常类:
public class MyException : Exception
{
public MyException() { }
public MyException(string message)
: base(message)
{ }
}
然后在代码中抛出该异常类型:
void MyMethod()
{
int a;
try
{
Console.Write("Input = ");
a = Convert.ToInt32(Console.ReadLine());
if (a < 0)
{
throw new MyException("Input Can't < 0");
}
}
catch (MyException myEx)
{
Console.WriteLine("MyException was thrown");
}
catch (Exception ex)
{
Console.WriteLine("Some other exception was thrown");
}
Console.ReadKey();
}