您的位置:首页 > 编程语言 > Java开发

java中异常处理

2016-05-21 18:05 274 查看
异常:
在java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)
java程序正在执行过程中的异常事件可以分为两类:
Error:java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。一般不编写针对性的代码进行处理。
如:java.lang.StackOverflowError栈溢出错误(变量太多)
        java.lang.OutOfMemoryError:堆空间溢出(数组太多)
Exception:其他因编程错误或偶然的外在因素导致的一般性问题,可以使用针对性的代码进行处理。例如:

空指针访问

试图读取不存在的文件

网络连接中断
结构

Java.lang.Throwable
Error:错误,程序中不进行处理
Exception:解决
Exception
解决方法:

遇到错误就终止程序的运行。

编写程序时,就考虑到错误的检测、错误消息的提示,以及错误的处理
捕捉错误最理想的是在编译期间,但是有的错误只有在运行时才会发生。比如:除数为0,数组下标越界等

分类:编译时异常

运行时异常

当执行一个程序时,出现异常,异常之后的程序就不再执行
 
编译时异常,有时候不一定是真的有异常,只是有可能有异常,此时程序如果不去处理就会在编译时报错。故必须处理
 
如:在方法名后面加throwsException

 
异常处理机制
1.java提供的是异常处理的抓抛模型
1.1“抛”,当我们执行代码时,一旦出现异常,就会在异常的代码处生成一个对应的异常类型的对象,并将此对象抛出
1.1.1一旦抛出此异常类的对象,那么程序就终止执行
1.1.2此异常类的对象抛给方法的调用者
1.2“抓”抓住上一步抛出来的异常类的对象。如何抓?即为异常处理的方式
java提供两种方式用来处理一个异常类的对象。
1.2.1处理方式一

Try{
//可能出现的代码

}catch(Exception1 e1){
//处理1

}catch(Exception2 e2){
//处理2

}finally{
//一定执行的

}

注意:
try内声明的变量,类似局部代码,出了try不可调用
finally可有可无
catch语句内部是对异常对象的处理,

getMessage(); printStackTrace();

 
2.java程序的执行过程中如出现异常,就会生成一个异常类对象,该异常对象将被提交给java运行时系统,这个过程成为抛出异常throw。

异常对象的生成

由虚拟机自动生成:
程序运行过程中,虚拟机检测到程序发生了问题,如果在当前代码中没有找到相应的处理程序,就会在后台自动创建一个对应异常类的实例对象并抛出--自动抛出

由开发人员手动创建:
Exception exception=newClassCastException():创建好的异常对象不抛出对程序没有任何影响,和创建一个普通对象一样(健壮性)

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: