如何检查它>0与尝试…抓住
本文关键字:抓住 何检查 检查 | 更新日期: 2023-09-27 18:07:40
我想检查一个变量(例如"totalSum"大于0)与try catch,如果不是我想让程序取消并给用户写一条消息。
下面的代码显然是无法编译的,但希望你能看到我想要的:
while (true)
{
try
{
totalSum > 0;
break;
}
catch
{
Console.WriteLine("Total sum is too small.");
End program
}
}
是否有可能用try…如果有,该怎么做?
一个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);
}
您可以这样做,但我不建议这样做:
try
{
if (totalSum < 0)
throw new ArgumentOutOfRangeException("totalSum", "Total sum is too small.");
}
catch (ArgumentOutOfRangeException ex)
{
Console.WriteLine(ex.Message);
}
你可以抛出一个异常
if (totalSum < 0)
{
throw new InvalidArgumentException("totalSum");
}
没有太多理由使用try catch。
你可以做
try {
if(!(totalSum > 0)) throw new Exception();
} catch {
Console.WriteLine("Total sum is too small.");
}
但是,真的,没有理由这样做-为什么你必须使用try..catch?
没有理由在这里使用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!");
}