关于java写入方法的疑问

来源:百度知道 编辑:UC知道 时间:2024/05/16 14:40:45
以下程序是错误的
class read{
public static void main(String b[]){
char letter='?';
System.out.println("Enter a letter");
try{
letter=(char)System.in.read();
}catch(IOException c){

};
System.out.println("the letter is:"+letter);
}
}

如果我把catch(IOException c)中的IOException c改为Exception c则没有错误

IOException 与 Exception c 有什么区别.

==========第2个问题=====
为什么一定要使用try()catch()才能使用System.in.read();呢???

1、用到IOException时要加入import java.io.*;
加入这个后就没有错误了.
IOException 与 Exception区别是IOExcetpion是io错误的异常处理,而Exception是错误处理,是IOException的父类.
2、用到System.in.read();用到了输入流,对输入流的操作时,可能发生io的错误,所以,

Exception和IOException,都是异常类,Exception是所有异常类的父类,Exception同样也是IOException的父类,其实System.in.read();抛出的是IOException,Exception在java.lang.Exception包内,IOException在java.io.IOException内,java.lang是默认导入,而java.io则要手动导入,因为你没有改入java.io.IOException才会报错,在程序前面加上import java.io.IOException就不会有错了。

java的规定,方法抛出的异常必须要捕获,System.in.read();的声明是有可能要抛出异常的,所以必须要加try()catch()。

IOException 只抛出读写异常
Exception 抛出所有异常

因为System.in.read()会抛异常,所以必须有异常处理.
在java中,可能产生异常的方法都需要作异常处理