2 shenjie123 SHENJIE123 于 2016.03.01 21:32 提问

C#关于异常的问题,望大虾指教
    public void ShowMune()
    {
        Console.WriteLine("------------------------欢迎使用-----------------------------");
        Console.WriteLine("1.开户\t2.存款\t3.取款\t4.转账\t5.查询余额\t6.退出系统");
        Console.WriteLine("-------------------------------------------------------------");
        Console.WriteLine("请选择操作:");
        try
        {
            int d = int.Parse(Console.ReadLine());

            switch (d)
            {
                case 1:
                    cord();
                    break;
                case 2:
                    break;
                case 3:
                    break;
                case 4:
                    break;
                case 5:
                    break;
                case 6:
                    break;
                default:
                    break;
            }

        }
        catch(FormatException)
        {
           Console.WriteLine("输入有误!请重新输入");

        }
                    我想用多重catch在扑捉一个异常,就是int d = int.Parse(Console.ReadLine());这里我只能输入1-6,其余的数字都不允许输入,如果一旦发现有别的数字输入,就能即使扑捉到这个异常,我找了一下参数,貌似没有特定的参数来捕捉,是不是要在自定义异常才能解决,小可菜鸟一个,望大神指教!

1个回答

caozhy
caozhy   Ds   Rxr 2016.03.01 21:38
已采纳
 就你这个程序,没必要使用异常,switch判断下就可以。int.Parse在无法解析的时候只会丢出FormatException,不会根据具体为什么没法转换丢出不同的异常。
你非要做,就得自己定义不同的异常,并且自己判断输入的字符串怎么不对,并且丢出不同的异常,再自己捕获。完全没必要。这里给你一个简单的例子:

class No1to6Ex :Exception
{
}

void main()
{
try
{
int d = int.Parse(Console.ReadLine());
if (d < 1 || d > 6) throw new No1to6Ex();
}
catch (FormatException)
{
Console.WriteLine("不是数字");
}
catch (No1to6Ex)
{
Console.WriteLine("不在范围);
}
}
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
大虾指教!!!!
 已知两个有序表SA、SB,其元素均为递增有序,将此两表归并成一个新的有序表SC,并保持递增顺序。 求一完整代码
有关于c#操作excel的问题 请各位大虾指教
我用c#写了个程序是将DataGrid中的数据写入excel的写入成功.但是现在我想在写入的excel中加一行标题也就是如何用程序在excel中设置显示格式(合并单元格,设置字体)public void CM_WriteDSToExcel( string dtime ) {            string strFile = "";            string path = "";
请各位大虾指教,字符串问题
#include #include main(){  char *p=" ";  char *sp="abcdefg";  int i=0;  char c;  while (1)  {    if ((c=getch())!=/r)     {      putch(c);       *(p+i)=c;       i++;     }    else     {      *(p+i)=
关于ASP的一点问题,望高手指教
-
关于check复选的问题,请指教,谢谢!
关于check复选的问题,请指教,谢谢!
由菜鸟到大虾的分级。比大虾还大虾的大虾又应该叫什么呢?
本人独创由菜鸟到大虾的不同分级,很实际,但又让很多自称为大虾的人感到压力
求一个高级MSSQL视图查询语句-望大虾指教
 因公司需要,小弟因公司需要,小弟需要建一个查询股市行情的涨幅的视图。原始数据库表范例如下:      日期     开盘     最高     最低     收盘     成交量     成交额        2008-07-14  13.70   14.17   13.57   14.00   3381600    47121336.0002008-07-15  14.05   14.
小弟正式开博,请个位大虾指教~
每天都习惯性的打开CSDN看点新闻,看博客,却一直处在潜水状态中,从今天起我将告别潜水生涯,哈哈小弟只是接触和学习软件开发2年多的小菜鸟,有很多问题还必须向个位请教,当然有什么意见和建议我一定会虚心采纳,先谢谢大家啦`~ 
新手关于helloworld报错的提问,跪求大虾指教
以上是问题报错的反馈 新下的Eclipse,ADT也照帖子上设置好了 SDK也没问题,之前用Android Studio新建helloworld是OK的 求大虾指点,以上问题怎么解决,弄了一晚上了
C# Socket 聊天程序 文件传输有问题 望高手指教
在网上找了个用C# Socket开发的QQ聊天室程序,学习完后针对每行都加上了注释,对于没有实现的文件传输功能试着写了一下 ,但是有问题,不知道原因,望高手能指教。初学者也可以学习借鉴。