import java.io.*;
class  StandardIn1
{
public static void main(String[] args) throws IOException
{
char c;
System.out.println("   输入一个字符:");
c=(char)System.in.read();
System.out.println("   输入的字符是:"+c);
}
}上面的程序运行没有问题,请问各位同仁,程序中为什么需要 throws IOException ,书上的解释是 程序中使用了 System.in.read(),使用了 read() 就要throws IOException ,我不理解,请各位指点。
若程序去掉 throws IOException ,编译就会报错。

解决方案 »

  1.   

    因为read()方法声明了抛出异常,则在调用的时候,要么调用的方法抛出该异常,要么用try catch块将该异常捕获
      

  2.   

    有关输入输出的(还有很多其他的)操作,必须要做异常处理,就是 try {} catch(){}如果你不处理异常,就需要把异常扔出来,让调用你的程序的程序来处理。
      

  3.   

    try catch 怎么说变量c需要初始化?
      

  4.   

    read是InputStream类下的一个方法,你可以看到她的方法的定义是public abstract int read() throws IOException;,所以会抛出异常,你要调用她,也应该给她加上异常处理
      

  5.   

    System.in.read();要抛出异常,需要处理,但是当您不想在函数里使用try catch时,就可以用这种方法来将处理这个异常的工作交给系统来处理用一下trycatch就可以去掉throws了
      

  6.   

    这是java本身的规定吧,在.net中就不需要,但是最好还是写上抛出异常的代码,这样更严谨一点,这一点我感觉java比.net做的好