[英]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.