static void Main(string[] args)
        {
                Console.WriteLine("请输入两个数和一个运算符:");
                float m = Convert.ToInt32(Console.ReadLine());
                float n = Convert.ToInt32(Console.ReadLine());
                string l = Console.ReadLine();
                float sum = 0;
          try{                  
                switch (l)
                {
                    case "+":
                        sum = m + n; break;
                    case "-":
                        sum = m - n; break;
                    case "*":
                        sum = m * n; break;
                    case "/":
                       
                            sum = m / n;
                        break;
                }
              }
            catch (System.DivideByZeroException e)
            { Console.WriteLine("出现异常" + e.Message); }
                Console.WriteLine("结果为{0}", sum);
       }
为什么不能捕获除零异常?怎么样才能捕获除零异常?

解决方案 »

  1.   

    除以0 无限大  
    int i = 5f;  
    int j = 0/ (i-5);  
    Console.WriteLine(j);  catch(DivideByZeroException e)  
    {  
    System.Console.WriteLine("零不能作为除数!异常值为:\n{0}",e);  
    }  
    catch(Exception e)  
    {  
    System.Console.WriteLine("并非\''零作为除数引发的异常\"!异常值为:\n{0}",e);  
    }  
      

  2.   

      case "/":
        if(n!=0)
    {
      sum = m / n;
    }
    else
    {
      //throw  Exception
    }