第九周异常与IO流

异常类包括两大类:Exception和Error.

抛出异常有两种方式:(1)系统自动抛出异常;(2)指定方法抛出异常.

throw和throws的区别:(1)throws用于方法头,表示的只是异常的申明,而throw用于方法内部,抛出的是异常对象。 (2)throws可以一次性抛出多个异常,而throw只能一个 (3)throws抛出异常时,它的上级(调用者)也要申明抛出异常或者捕获,不然编译报错。而throw的话,可以不申明或不捕获(这是非常不负责任的方式)但编译器不会报错。

异常是指在运行代码序列中产生的异常情况,

换句话说异常是一个运行时的错误.

程序在运行时出现异常没有相应的处理措施时,java会自动捕获并在异常发生处结束执行

public class IllegeNameException extends Exception{
    public IllegeNameException(){

    }
    public IllegeNameException(String s){
        super(s);
    }
}
public class ExceptionTest {
    public static void main(String[] args) throws MyException {
        //创建异常对象(只new了异常对象,并没有手动抛出)
        MyException e=new MyException("用户名不能为空!");

        //打印异常堆栈信息
           e.printStackTrace();
          String msg=e.getMessage();
           System.out.println(msg);
    }
}

流的分类包括:输入流,输出流,字节流,字符流
所有的输出流都实现java.io.Closeable接口,都是可关闭的,都有close()方法
输出流在最后输出之后,一定要记得flush()刷新一下

mport java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class IO06 {
    public static void main(String[] args) throws IOException {
       FileReader in=null;
       FileWriter out=null;
        try {
            in=new FileReader("myfile");
            out=new FileWriter("wo",true);
            char[] chars=new char[1024*1024];
            int readCount=0;
            while((readCount=in.read(chars))!=-1){
                out.write(chars,0,readCount);
            }
            out.flush();
        } catch (FileNotFoundException e) {
            throw new RuntimeException(e);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }finally {
            if(in!=null){
                in.close();
            }
            if(out!=null){
                out.close();
            }
        }

    }
}

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值