如何检查我> 0尝试...抓住?

时间:2011-09-06 21:14:32

标签: c# try-catch

我想用try catch检查变量(例如“totalSum”是否大于0),如果不是 我希望程序取消并向用户写出消息。

以下代码是由于无法编译的明显原因,但希望你能看到我想要的东西:

while (true)
{
    try
    {
        totalSum > 0;
        break;
    }
    catch
    {
        Console.WriteLine("Total sum is too small.");
        End program
    }
}

是否可以尝试使用try ... catch,如果是这样,该怎么做?

5 个答案:

答案 0 :(得分:4)

try / catch 块可以执行此操作:

try
{
    if (totalSum < 0)
        throw new ApplicationException();
}
catch (Exception ex)
{
    Console.WriteLine("Total sum is too small");
    Environment.Exit(1);
}

但是一个简单的 if 语句可以用很少的工作来做到这一点:

if (totalSum < 0)
{
    Console.WriteLine("Total sum is too small");
    Environment.Exit(1);
}

答案 1 :(得分:3)

你可以这样做,虽然我不推荐它:

try
{
  if (totalSum < 0)
    throw new ArgumentOutOfRangeException("totalSum", "Total sum is too small.");
}
catch (ArgumentOutOfRangeException ex)
{
   Console.WriteLine(ex.Message);
}

答案 2 :(得分:2)

你可以抛出异常

if (totalSum < 0)
{
    throw new InvalidArgumentException("totalSum");
}

答案 3 :(得分:1)

没有太多理由使用try catch。

你可以做到

try {
    if(!(totalSum > 0)) throw new Exception();
} catch {
    Console.WriteLine("Total sum is too small.");
}

但实际上,没有理由这样做 - 你为什么要使用try..catch?

答案 4 :(得分:1)

此处没有理由使用try/catch块。仅为特殊情况使用例外。在您的情况下,只需使用ifelse

if (totalSum > 0)
{
    // Good! Do something here
}
else
{
    // Bad! Tell the user
    Console.WriteLine("Bad user!");
}

或者,如果你想循环:

int totalSum = 0;
while (totalSum <= 0)
{
    totalSum = GetSum();
    if (totalSum <= 0)
        Console.WriteLine("Too small!");
}