System.in.read()要catch 异常把!最简单的:
try
{
for(n=0; (ch=System.in.read())!=-1; n++)
if(ch>='0'&&ch<='9')d++;
}
catch(java.io.IOException ex)
{
}

解决方案 »

  1.   

    import java.io.*;
    class Sample_3
    {
    public static void main(String[] args)throws IOException
    {
    int n, ch, d=0;
    for(n=0; (ch=System.in.read())!=-1; n++)
    if(ch>='0'&&ch<='9')d++;
    System.out.println("\n"+n+" 个字符");
    System.out.println(d+" 个数字");
    }
    }这样改就好了
    要抛出异常才行的~
      

  2.   

    try
    {
    for(n=0; (ch=System.in.read())!=-1; n++)
    if(ch>='0'&&ch<='9')d++;
    }
    catch(java.io.IOException ex)
    {
    }
    其中的try 和后面的 catch起什么作用啊?还有java.io.IOException ex的ex是什么?
      

  3.   

    catch(需要抓异常的类型){
    //抓到后需要做什么处理?如果不需要做处理当然就是空白咯
    }IOException ex其实和String str一样。没有具体意义,你也可以取名aaa或者其他
    但是为了有点实际含义也为了更符合规范,所以取名才有了点讲究。
      

  4.   

    catch(java.io.IOException ex){
     System.out.println(ex.toString()); //这样你能理解ex的含义了吧
    }
      

  5.   

    回junyi2003(超级菜鸟):应该可以理解ex的含义
      

  6.   

    出错的这段代码要进行异常处理才行(因为你使用了READ()方法)别忘力给分哦  ^_^
      

  7.   

    同意一楼的观点,看看Think in java 的异常处理,讲的很清楚。