java中异常处理

异常:

java语言中,将程序执行中发生的不正常情况称为“异常”。(开发过程中的语法错误和逻辑错误不是异常)

java程序正在执行过程中的异常事件可以分为两类:

Errorjava虚拟机无法解决的严重问题。如: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():创建好的异常对象不抛出对程序没有任何影响,和创建一个普通对象一样(健壮性)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值