IO流:

  1. I Input输入<br /> O Output输出

IO的前提:

    **异常**

异常:

java程序运行的一切不正常情况<br />    异常也算是问题的一种, java把遇到的各种问题抽取一下密封成类来描述,用对象去表示

异常分类:

小强要骑自行车出门自驾游

可能遇到的问题:<br />            三种:<br />                骑到一半发现车胎没气了,漏气!!!   出门前就应该检查的问题

            小强正在路上美滋滋骑行,骑到一半看到路边石子觉得很有意思,<br />                    用车压过去,结果导致车翻,摔跤<br />                    骑行过程中脑残问题 no zuo  no die


            骑到半山坡,遇到山体滑坡,没有办法继续前行,只能掉头回家<br />                    没有办法去做针对性处理

程序中异常也分三类

1.Throwable java中所有的异常的超类(顶级)

2.异常Exception

①.运行时异常(RuntimeException以及所有子类)(也叫非受检异常)
只有程序运行过程当中发生的异常情况

    NullPointerException  空指针异常<br />        ArrayIndexOutOfBoundsException 数组索引越界异常<br />        StringIndexOutOfBoundsException 字符串索引越界异常<br />        ClassCastException  类型转换异常<br />        ArithmeticException 除数为0异常<br />        NumberFormatException 数字格式化异常<br />        InputMismatchException  输入不匹配异常<br /> **  ②. 编译器异常(非RuntimeException以及所有子的所有异常)\**<br />**(也叫非受检异常)**<br /> 在编译期要对程序代码做预处理 必须做预处理<br />         预处理两种方式

throws 抛出

    针对出现的问题做一个忽略操作,抛出给下一个调用者<br />        格式: 在当前参数括号和方法体大括号之间 用throws关键字<br />        后面紧跟着 出现的异常类名,把该异常抛出给方法,下一个调用者来处理<br />        抛出并没有处理问题或者当前不会处理,交给别人,保证了当前代码格式的好看<br />        在不断抛出以后,直到main 抛出给jvm<br />        而jvm不会处理问题,出现问题程序直接报错终止

try catch 处理

    在不断抛出过程中,一旦做了try catch预处理,则后面的调用不需要在处理问题<br />        try{<br />            尝试执行的代码<br />        }catch(捕获到的异常对象){<br />            针对出现的异常做针对性处理<br />            e.printStackTrace();<br />            jvm默认处理  e捕获到的异常对象   打印异常堆栈序列<br />        }finally{<br />            无论如何都会执行的代码<br />        }<br />        try  catch会保证后面的程序继续运行<br />        注意点:<br />        在try或者catch里面声明的变量只能在里面用,出了大括号就用不到

3.错误(Error)没有办法做针对性处理的

       类名都是以Error结尾的<br />       OutOfMemoryError 超出内存异常

   StackOverflowError 栈溢出异常