Java程序运行的非正常现象叫做运行错误,根据其性质可分为两类:错误(Error)和异常(Exception); 他们有一个共同的父类(也是所有异常的顶级父类):Throwable。
成都创新互联制作网站网页找三站合一网站制作公司,专注于网页设计,成都网站制作、成都网站设计,网站设计,企业网站搭建,网站开发,建网站业务,680元做网站,已为上1000+服务,成都创新互联网站建设将一如既往的为我们的客户提供最优质的网站建设、网络营销推广服务!异常类结构
Error
Error(错误)由JVM生成并抛弃不做处理;此类错误通常与代码和执行的操作无关,是虚拟机中出现了比较严重的问题,程序本身无法解决(常见的错误有死循环、内存泄漏等)。
一个常见的错误为Java虚拟机错误(VirtualMachineError),当JVM不再有继续执行操作所需的内存资源时,将出现OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。
Exception
Exception(异常)作为一个对象使用,由Java程序抛弃或处理;通常异常产生的原因有:代码或调用代码有错,操作系统资源不可用,公共语言运行库遇到意外;
异常分为由虚拟机生成的运行时异常(RuntimeException,如空指针、数组越界)和程序意外造成的非运行时异常(如IOException);
运行时异常:程序可以选择捕获处理或不处理直接抛掉;常见的运行时异常有算法溢出(超出数值表达范围)、除数为零、内存溢出、空指针、无效参数等,此类异常是程序本身编程出错,可以通过调整异常代码运行方向,使程序继续运行,直至正常结束;
非运行时异常:RuntimeException类型意外的异常都叫做非运行时异常,从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过;常见的非运行异常有IOException,例如:资源文件找不到等,是程序碰到意外情况无法执行成功。
注意:异常和错误的区别---异常能被程序本身可以处理,错误是无法处理。
可查异常和不可查异常
Java异常(ErrorandException)根据程序是否能够编译通过可以分为另外两类:可查异常(checkedexceptions)和不可查异常(uncheckedexceptions)。
可查异常
可查异常:对应非运行时异常,编译器编译程序时可以检查预计到其中的错误,这种异常必须处理,两种处理方式:try-catch语句捕获异常或throws子句声明抛出异常,在方法体外头部声明抛出异常类型(使用throws抛出Exception),调用者可选择处理接收到的异常。
说到这两种处理方式,要说到Java异常处理的5个关键字:try、catch、finally、throws、throw
1、使用try-catch语句处理捕捉(方法头部不用声明)
try、catch、finally三个语句块不能单独出现,三者可以组合为:try-catch/try-catch-finally/try-finally。
catch块可以有多个,此时只能从上到下匹配其中一个catch块代码;
finally最多一个,三个语句块中定义的变量不可相互访问。
在该部分中,使用的是try-catch组合来处理可查异常,将异常向上抛出,实例:
public XMLReaderHDU(String xmlFile){ super(); this.xmlFile = xmlFile; this.fileName=StaticConfig.umlPathPrefixHDU; try { SAXReader reader=new SAXReader(); Document dom=reader.read(xmlFile); root=dom.getRootElement(); } catch(Exception e1) { Handle1…… } catch(Exception e2) { Handle1…… } }