Java中的异常处理

一.运行时的异常特点
若程序不幸在运行时抛出了异常,则后面的代码都不会得到执行。
举例:
System.out.println(“1---->”);
int a=3/0;
System.out.println(“2---->”);
二 .异常的分类和结构图
我 们 主 要 看 一 下 三 级 分 类 , 一 共 有 VirualMachineError AWTError IOException
RuntimeException...而 error 部分是我们程序员所不能控制的,我们仅仅关注 IOException
和 RuntimeException。。。
三 . 抛出 Exception
无论是哪种 exception,我们都可以在方法体使用代码抛出,使用 throw 关键字.
例如: throw new IOException(); throw new RuntimeException();
①对于 IOException 我们抛出后,编译前必须处理.
a.处理方法 1--甩锅,使用 throws 关键字跟在方法的后面表示对异常向上抛出:
例如:void setAge(int age) throws IOException{
If(age<0){

throw new IOException();
}
}
b.处理方法 2:--使用 try catch 结构处理:
void setAge(int age){
If(age<0){
try{
throw new IOException();
}catch(Exception e){
}finally{
}
}
}
②对于 RuntimeException 我们抛出后,不需要在编译前处理。
例如: void setAge(int age) {
If(age<0){
throw new RuntimeException();
}
}
四 . 方法调用的层级关系

五 . 对于异常的处理
① throws 关键字向上级抛出(注意上下级关系),如果抛到主线程程序就会崩溃.
②使用 try catch finally 结构捕获异常
a.标准结构:
try{
}catch(Exception e){

}finallly{
}
采用标准结构,将可能发生异常的代码放在 try 内部,若有 exception 抛出,则进入 catch
代码,finally 内部的代码无论如何都会被执行。
b.非标准结构:
*try{
}catch(EOFException e){
}catch(FileNotFoundException e){
}catch(Exception e){
}finally{
}
注意:catch 的参数范围要是从小到大的。
*try{
}finally{
}
(注意: 利用 finally 代码块的代码无论如何都会运行的特点。 通常用在关闭 IO 流,防止
代码发生异常后,代码停止运行然后导致的 IO 流关不掉)
c.执行顺序
注意 try catch finally 的执行顺序,这里简单给大家举几个例子。大家有个印象就可以。主
要是 finally 内部的代码一定会被执行。
六 . 运行阶段异常的特点
①如果是运行阶段,对于两种异常,都需要在某个方法的调用使用 try catch finally 结构处
理,否则一直往上级抛出,抛到主线程程序就会出问题。(在未学习多线程的情况下,默
认只有主线程)

②对于 IOException 因为编译要求我们处理异常,如果不使用 try catch finally 处理,则一定
会显式得使用 throws 甩锅从而通过编译。
③ RuntimeException 编译前不需要我们写额外代码处理异常,但是实际上运行的时候如果
一直没有 try catch finally 结构去处理,最终会一层层抛出直到主线程,然后程序就会崩溃 。
(在未学习多线程的情况下,默认只有主线程)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值