JAVA处理 M_Java 之 异常处理

1.异常:

a.问题(Throwable):异常(Exception)、错误(Error)

异常(Exception):运行时异常(RuntimeException)、编译时异常(Unhandled exception)

b.编译时异常:编译器在编译期告诉我们,我们编译的代码,在编译是有可能出现一到多个异常,需要我们处理,否则编译不通过,表现形式是:

调用方法处打上红线,指过去以后,出现“Unhandled exception”。

c.错误:程序员不能用代码解决的问题,往往是硬件问题、环境问题、系统问题

2.异常处理的三种方法:

a.预判,提前消除异常出现的条件

b.异常捕获:try-catch-finally

c.不处理,跑出去让别人处理:throw (针对业务异常)

3.异常捕获(try-catch-finally)

a.语法:

try{/*有可能出现异常的代码*/}catch(/*异常引用1*/){/*处理1*/}catch(/*异常引用2*/){/*处理2*/}finally{/*必须执行的代码*/}

b.规范:①try、catch、finally 都不能单独存在

②try 后必须接 catch 或 finally

③catch 、finally 前必须接 try

④当try后接有多个catch,如果catch 中的异常类有继承关系,捕获父类的catch块写在后面,捕获子类的catch块写在前面

c.catch块中写:①异常提示

②记录日记

③ex.printStackTrace();(仅在开发过程中使用)

4.finally关键字

a.应用:finally中一般放 资源的清理、通道的关闭

b.特点:不管是break、continue 还是 return,都无法阻止它的执行,即finally在它们之前被执行(return后面返回的值是例外)

c.final、finalize()、finally 的比较:

①final:修饰变量:常量

修饰类:最终类、太监类,不能被继承

修饰方法:不能被重写

②finalize():Object的方法,GC调用,用来销毁对象

③finally:不管是否发生异常,都必须要执行的代码

5.throw 与 throws:

a.概念:throw:使用throw关键字抛出这个异常对象

throws:当主动抛出的是一个非运行时异常的时候,必须要在编译期对本方法的调用者提出警告,所以在方法的申明部分,应该有throws内容,表明本方法有可能发生异常

b.辨析:①throw 和 throws 都是关键字,都属于异常处理部分

②throw 是写在方法体当中的,后面跟的是一个异常对象

throws 是写在方法的申明的最后,后面跟的是一个或者多个异常类

③当运行到throw 这句代码的时候,就会真正发生抛出一个异常的动作,

而throws实在编译期警告本方法的调用者,有可能会发生哪些类型的异常

④当一个方法体中有throw 语句,不一定有throws 除非throw 后面跟的是编译是异常,那就必须写throws

6.三层架构:

a.表示层:其中的类用于界面展现

b.业务层:其中的类用于业务处理,如:登陆、存取处理

c.数据访问层:其中的类用于操作数据库

7.自定义异常

public class LovoException extendsException{publicLovoException(){

}publicLovoException(Throwable th){super(th);

}publicLovoException(String msg){super(msg);

}

}

a.自定义异常一定要继承Exception

b.自定义异常至少要有两个带参构造,一个带异常参,一个带String 参

前者用于把其他异常类型转换为自定义异常

后者用于操作非JVM主动抛出的业务异常(比如:工资为负)

c.可以给自定义异常提供扩展方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值