Try-Catch格式化C#

-3 c# try-catch

我正在尝试为学校作业制作一个功能齐全的计算器应用程序.要做到这一点,虽然我需要使用try-catch来处理DivideByZero错误,这是我现在的代码:

try
{
    Console.WriteLine("Type 1st number: ");
    num1 = Convert.ToInt32(Console.ReadLine());

    Console.Write("type 2nd number: ");
    num2 = Convert.ToInt32(Console.ReadLine());

    Console.Write("type operation( x , / , +, -, Fs) ");
    operation = Console.ReadLine();
}

catch(DivideByZeroException)
{
    Console.WriteLine("Sorry moron you can't divide by zero");
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.它似乎使我的代码在顶部无效.有人知道如何正确格式化吗?

PS完整代码在这里:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Calculator_MK._2
{
    class Program
    {
        static void Main(string[] args)
        {
            Calculator();

        }

        private static void Calculator()
        {
            decimal num1;
            decimal num2;
            string operation;
            decimal result;
            decimal num3;
            decimal num4;

            Console.WriteLine("This is IK's Calculator program that should work if you do everything I say");
            Console.ReadLine();
            try
            {
                Console.WriteLine("Type 1st number: ");
                num1 = Convert.ToInt32(Console.ReadLine());


                Console.Write("type 2nd number: ");
                num2 = Convert.ToInt32(Console.ReadLine());

                Console.Write("type operation( x , / , +, -, Fs) ");
                operation = Console.ReadLine();
            }

            catch(DivideByZeroException)
            {

                Console.WriteLine("Sorry moron you can't divide by zero");

            }

            if (operation == "x")
            {
                result = num1 * num2;
                Console.WriteLine("{0} * {1} = {2}", num1, num2, result);
                Console.ReadLine();
            }

            else if (operation == "/")
            {
                result = num1 / num2;
                Console.WriteLine("{0} / {1} = {2}", num1, num2, result);
                Console.ReadLine();
            }


            else if (operation == "+")
            {
                result = num1 + num2;
                Console.WriteLine("{0} + {1} = {2}", num1, num2, result);
                Console.ReadLine();
            }
            else if (operation == "-")
            {
                result = num1 - num2;
                Console.WriteLine("{0} - {1} = {2}", num1, num2, result);
                Console.ReadLine();
            }
            else if (operation == "Fs")
            {

                int a = 0;
                int b = 1;
                int c = 1;

                Console.WriteLine(a); 
                Console.WriteLine(b); 

                for (; c <= 34; c = a + b)
                {
                    Console.WriteLine(c); 
                    a = b;
                    b = c;
                    Console.WriteLine();
                }

            }
            if (num2 == 0)
            {

                Console.WriteLine("Can't divide by zero fool");



            }

        }

    }
}
Run Code Online (Sandbox Code Playgroud)

Rol*_*Bär 5

try块必须围绕导致异常的代码,在您的情况下,这是

result = num1 / num2;
Run Code Online (Sandbox Code Playgroud)

但是0在调用此行之前检查一下会更好,从而避免异常.