[英]Where i should place try catch block? (Simple division method)
这是我的代码:
using System;
using System.Data;
using System.Transactions;
namespace BasicCourse.Exceptions
{
class Program
{
static void Main(string[] args)
{
Division();
Console.ReadKey();
}
static void Division()
{
Console.Write("Enter a first number: ");
int firstEnteredNumber = int.Parse(Console.ReadLine());
Console.Write("Enter a second number: ");
int secondEnteredNumber = int.Parse(Console.ReadLine());
float quotient = (float) firstEnteredNumber / secondEnteredNumber;
Console.WriteLine("Result of division: " + quotient + "\n");
}
}
}
我正在学习 C# 中的异常。我想参加除以零异常,但我不知道应该在哪里放置 try catch 块。在 Main 方法中:
try
{
Division()
}
catch (DivideByZeroException ex)
etc...?
还是里面的Division
?
static void Main(string[] args)
{
try
{
Division();
}
catch (Exception e)
{
Console.WriteLine(e);
throw;
}
Console.ReadKey();
}
除以零不会导致异常。 您将不得不放入一些逻辑来处理它。
if (float.IsNaN(quotient))
{
//dostuff
}
更新---对不起!
我阅读了其他人的答案,发现 float 不会抛出任何异常!我很抱歉忘记了它。
DivideByZeroException 类
尝试将整数或十进制值除以零时引发的异常。
控制台显示:
除法结果:∞
事实上,我们不想要这种类型的结果,所以我编辑了答案。
所以我们知道结果是:没有抛出异常。
如果您希望方法 Division() 提醒用户他们正在尝试除以 0,您可以检查该值。
static void Division()
{
Console.Write("Enter a first number: ");
int firstEnteredNumber = int.Parse(Console.ReadLine());
Console.Write("Enter a second number: ");
int secondEnteredNumber = int.Parse(Console.ReadLine());
//Added
if (secondEnteredNumber == 0)
{
Console.WriteLine("cannot divide by 0");
}
else
{
float quotient = (float) firstEnteredNumber / secondEnteredNumber;
Console.WriteLine("Result of division: " + quotient + "\n");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.