J2se(10)------流 和异常

J2se(10)
------流 和异常



什么是流?

答:输入输出设备与内存之间传递的一组有序的数据序列,就称为:"流"



流的分类方式有三种:

按方向:  输入流与输出流
按处理的数据单位:  字节流与字符流
按操作的对象: 节点流与处理流

------------------------------------------------------------
输入流: 向内存写数据的流,就称为:输入流          (Input****,Reader*****)

输出流: 把内存中的数据向外输出的流,就称为:输出流(Output****, Writer****)


字节流: 每一次读取一个字节的流,就称为"字节流"  (*****Stream)
字符流: 每一次读取一个字符为单位的流,就称为:字符流  (****Reader,  ****Writer)


节点流: 直接对文件操作的流,就称为:节点流  (括号中的参数如果是文件或者路径)
处理流: 对其他流对象操作的流,就称为:处理流(括号中的参数如果是其他的流)

-----------------------------------------------------------

InputStream:它是一个抽象类,它也所有输入字节流的基类
OutputStream:它是一个抽象类,它也是所有输出字节流的基类


Reader: 它是一个抽象类,它也是所有输入字符流的基类
Writer: 它是一个抽象类,它也是所有输出字符流的基类

********************************************************

什么时候用字符流,什么时候用字节流?

答: 一般读文本的时候,使用字符流,会更高效,在操作非文本的时候,使用字节流性能会更好



--------------------------------------------------

异常

------------------------------------------------

错误:(程序中错误分成两种:)

1、编译错误 (语法错误)
2、程序运行过程中产生的错误-------异常(Exception)


什么是异常?
答:异常是程序在正常的执行过程中,产生的不正常的事件


异常发生以后,程序的正常执行流程就会被中断



针对程序中的异常的解决方案,就称为“异常处理机制”


程序中的异常处理,主要涉及五个关键字:


try....catch...finally


throw....throws


常见异常的类型:

ArithmeticException: 算术运算异常 (除数为0)




如何处理异常

try{
把可能会出错的代码,放在此处

}catch(异常的类型){
在这里可以对异常信息进处理
}


一般把可能会出错误的代码,放在try块写,如果程序执行过程中,没有任何错误,就会正常的执行下去,如果产生异常,系统会自动把它与指定的异常类型做比较,如果比较上,就会执行catch块的代码,处理完成以后,程序是可以正常的执行下去


如果程序执行过程中,没有错误catch的代码,不会运行,如果产生错误才会执行catch块的代码



程序正常执行的过程中,是不会进入catch块,只有出现了异常情况,才会进入catch块



try{
代码...

}catch(第一种异常类型 e){

}catch(第二种异常类型 e){
}catch(第三种异常类型 e){

}catch(Exception e){

}

如果在程序中,做了多个异常捕获,并且也捕获了Exception,必须保证,它是最后一位



常见异常:

--不受检查的异常

NullPointerException (空指针异常) -------还没有实例化,分配内存存储空间
ArrayIndexOutOfBoundsException (数组下标越界)
ArithmeticException(数学运算异常)---除数为0
NumberFormatException(数字格式异常) ----把不能转换成数字的内容,转换成数字
--受检查的异常 (必须强制性进行异常处理,否则,代码不允许运行)
ClassNotFoundException----类找不到异常(驱动包没有导入)
SQLException ----数据库异常
NotFoundException---文件找不到
IOException----IO流异常


异常又可以分为两种:

1、不受检查的异常
(这一类型的异常不强制性要求用户try...catch)

2、受检查的异常
(这一类型的异常,不管用户写的代码写的对不对,都必须try..catch否则代码不允许运行)





try{

}catch(){
这里是有错误的时候,才会执行代码
}finally{

不管任何情况下,写在此处的代码一定会运行

}








try..catch.finally

自己处理异常



throws throw 程序执行过程中,有异常自己不处理,而是抛出异常


throws 用于声明方法要抛出异常的一个关键字

throw 用于手动抛异常的关键字



异常用的几个关键字:

try...catch..finally


throw ---抛异常的关键字

throws ---声明方法要抛异常


所有异常的基类是-----------Exception

异常分为:  受检查异常与不受检查异常


受检查异常的代码,必须对异常进行处理以后,代码才可以正常运行


Throwsable  下面可以包含 错误与异常

error  --错误

Exception ---包含的异常

尽管exception还基类,但是由于所有异常类,都隶属exception,所以,我们认为Exception就是所有异常类的基类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值