Console应用程序异常

时间:2012-04-14 11:41:54

标签: c#

根据我们的大四学生的要求,我们被要求创建一个应用程序,用户输入并获取他/她的储蓄信息的详细信息......

它的工作非常好, 除了我按Enter键的事实,我得到一个例外,我的程序崩溃..

请提供给我信息,以便在我的控制台应用程序中,即使按下Enter键,我也不会得到例外,而是返回程序。

非常感谢, 非常感谢。

这是我的计划。

using System;

using System.Collections.Generic;

using System.Text;



namespace bankprob {



    class sav_acc

    {

        public float amount;

        public sav_acc(float amount)
        {

            this.amount = amount;

        }

        public void getdeposit(float depos)
        {

            amount += depos;

        }

        public void display()
        {

            Console.WriteLine("Balance of Customer :{0} ", amount);

        }


        public void withdrawl(float amt)
        {

            amount =amount - amt;

        }

        public void minbal()
        {

            if (amount < 1000)
            {

                Console.WriteLine("You cannot withdraw beyond the minimum balance of rupees 1000. ");
                return;
            }

        }

    }

    class cur_acc 
    {

        public float amount = 0;

        public cur_acc( float amount)


        {

            this.amount = amount;

        }

        public void getdeposit(float depos)
        {

            amount += depos;

        }

        public void display()
        {

            Console.WriteLine("Balance of Customer : {0}", amount);

        }


        public void withdrawl(float amt)
        {

            amount = amount - amt;

        }

        public void minbal()
        {

            if (amount < 1000)
            {

                Console.WriteLine(" Your balance is less than 1000, and u cannot make any withdrawals");

            }

            else

                Console.WriteLine("Balance is greater than Rs 1000 no need to panality");

        }

    }

    class Program
    {

        public static void Main(string[] args)
        {
            Console.WriteLine("Welcome Mr.Sayeed");
            Console.WriteLine("Please select the type of account.\n1.Savings 2.Current 3.Exit");

            int ch; 
            ch = int.Parse(Console.ReadLine()); 
            switch (ch)
            {

                case 1:

                    Console.WriteLine("Enter Initail Amount : ");

                    float amt = int.Parse(Console.ReadLine());

                    sav_acc s = new sav_acc(amt);

                    Console.WriteLine("Enter deposit money : ");

                    float depos = float.Parse(Console.ReadLine());

                    s.getdeposit(depos);

                    s.display();

                    Console.WriteLine("Enter withdrawl Amount");

                    float wamt = float.Parse(Console.ReadLine());

                    s.withdrawl(wamt);

                    s.display();

                    s.minbal();

                    s.display();

                    break;

                case 2:

                    Console.WriteLine("Enter Initail Amount : ");

                    float am = int.Parse(Console.ReadLine());

                    cur_acc c = new cur_acc(am);

                    Console.WriteLine("Enter deposit money : ");

                    float depo = float.Parse(Console.ReadLine());

                    c.getdeposit(depo);

                    c.display();


                    Console.WriteLine("Enter withdrawl Amount");

                    float wam = float.Parse(Console.ReadLine());

                    c.withdrawl(wam);

                    c.display();

                    c.minbal();

                    c.display();

                    break;
                case 3:
                    Console.WriteLine("Thank you for Using this applicaton");
                    return;

                default:
                    Console.WriteLine("You have made a wrong choice, Thank you...");
                    return;

            }

        }

    }

}

1 个答案:

答案 0 :(得分:4)

int.Parse(Console.ReadLine())要求您输入有效的整数。如果只是在不输入值的情况下按回车键,则该方法将抛出异常。请改用int.TryParse

int ch = 0; 
int.TryParse(Console.ReadLine(), ch); 
switch (ch) {
    ...
}