我想用try catch检查变量(例如“totalSum”是否大于0),如果不是 我希望程序取消并向用户写出消息。
以下代码是由于无法编译的明显原因,但希望你能看到我想要的东西:
while (true)
{
try
{
totalSum > 0;
break;
}
catch
{
Console.WriteLine("Total sum is too small.");
End program
}
}
是否可以尝试使用try ... catch,如果是这样,该怎么做?
答案 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
块。仅为特殊情况使用例外。在您的情况下,只需使用if
和else
:
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!");
}