黑马程序员技术交流社区
标题:
异常报错问题
[打印本页]
作者:
凡延海
时间:
2012-5-21 15:01
标题:
异常报错问题
import java.io.*;
public class ExceptionTest {
public static void main(String[] args) {
try
{
FileInputStream fis=new FileInputStream("a.txt");
while((fis.read())!=-1)
{
System.out.println((char)(fis.read()));
}
fis.close();
}
catch(IOException e)
{
System.out.println("输入输出错误");
e.printStackTrace();
}
catch(FileNotFoundException e)
{
System.out.println(" 找不到文件");
e.printStackTrace();
}
}
}
我编译的时候就说已经捕获到异常了,为什么呢,不是已有在运行的时候才可以捕获到异常么?
作者:
袁培育
时间:
2012-5-21 15:19
是因为你上面有一个IOException ,下面的FileNotFoundException是IO异常的子类,上面捕获IO异常时把这个FileNotFoundException异常也捕获了,所以编译时会出错。你如果想专门捕获FileNotFoundException异常的话,可以把两个catch换下位置就行了。
作者:
付信榕
时间:
2012-5-21 15:22
异常分为两种:编译时异常和编译时不被检测的异常(运行时的异常,RuntimeException和其子类)。报异常有时候是程序自身的错误 大部分是你程序逻辑有错误。
作者:
赵玮_Tom
时间:
2012-5-21 15:23
兄弟,两个catch的内容弄反了,应该是更具体的异常在前面。
FileNotFoundException 属于IOException;你这样的代码,永远捕获不到FileNotFoundException。
所以,把两个catch颠倒一下就ok了{:soso_e113:}
作者:
凡延海
时间:
2012-5-21 15:42
嗯我去看API文档了,发现是的FileNotFoundException类是IOException的子类,还有很多的类,要记住还真不容易,看来要慢慢的记忆才行了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2