java吧 关注:1,244,064贴子:12,720,092
  • 11回复贴,共1

新人求教!!!

只看楼主收藏回复

import java.io.File ;
import java.io.InputStream ;
import java.io.FileInputStream ;
public class InputStreamDemo03{
public static void main(String args[]) throws Exception{ // 异常抛出,不处理
// 第1步、使用File类找到一个文件
File f= new File("d:" + File.separator + "test.txt") ; // 声明File对象
// 第2步、通过子类实例化父类对象
InputStream input = null ; // 准备好一个输入的对象
input = new FileInputStream(f) ; // 通过对象多态性,进行实例化
// 第3步、进行读操作
byte b[] = new byte[(int)f.length()] ; // 数组大小由文件决定
int len = input.read(b) ; // 读取内容
// 第4步、关闭输出流
input.close() ; // 关闭输出流\
System.out.println("读入数据的长度:" + len) ;
System.out.println("内容为:" + new String(b)) ; // 把byte数组变为字符串输出
}
};
求问为什么只抛出异常没有try catch 语句程序正常执行
把throws Exception去掉后在编译时就会出现异常
给人的感觉是抛出异常后程序可以正常执行,就算没有catch语句也可以??


IP属地:北京1楼2015-11-11 22:48回复
    异常要么抛出要么catch处理,二者选其一,一般都会catch处理


    IP属地:江苏来自iPhone客户端2楼2015-11-11 23:17
    收起回复
      老师没教嘛!永远不要向main方法上抛异常


      来自Android客户端3楼2015-11-12 00:08
      回复
        可能是非检查异常,不需要处理


        来自Android客户端4楼2015-11-12 00:09
        回复
          老师说抛出异常是把这个异常留给调用者解决


          来自Android客户端5楼2015-11-12 01:10
          回复
            throws Exception写在方法名后面是传播异常,将此方法里的异常传播出去留给调用此方法的人处理,而此方法里面就不能再try catch了,若调用此方法就必须try catch 捕获所传播的异常,不然编译就会报错。而你这个代码里面的流处理本来就有很多编译期异常,若不throws传播出去的话就必须try catch捕获,不然肯定报错。


            IP属地:重庆来自iPhone客户端6楼2015-11-12 01:36
            收起回复