Java 异常

异常的主要知识:
1、异常的重要性。
2、异常和错误的分类。
3、异常的继承结构。
4、如何处理异常。
1>异常的抛出机制。
2>异常的处理方式。
1.try-------catch------------finally
2.throw throws
5、自定义异常
1>语法
2>工作方式
***************************************************************************************************
异常:程序在执行过程中产生的问题。
异常的重要性:
没有没有异常的程序。
2/8原则。
java的异常:
1.异常
1>编译时异常(CheckedException)------------编译器
2>运行时异常(RuntimeException)------------JVM
分类的原则是:异常是在什么时候抛出的。
2.错误(Error)(准确上是不属于异常)
一般是运行环境,硬件问题,无法用代码挽回。
eg:内存耗尽。
Exception及其子类(除了RuntimeException及其子类)都是属于编译时异常。
***************************************************************************************************
异常(运行时)的处理:
1.捕获这个异常,不让他继续沿着调用栈向上抛出。
2.捕获这个异常,并继续向上抛出。
3.不捕获这个异常,从而导致方法从调用栈被弹出,异常对象继续抛给调用栈上面的方法。
语法(捕获处理异常):
try{
正常逻辑代码(有可能发生异常的代码)
}catch(异常类型 变量名){
处理(只要进了catch块,就是捕获了 。
就算不写处理,也算处理了。不会报错)
}catch(){

}catch(){
。。。。。。。。

}finally{
不管是否发生异常,都必须要执行的代码
就算前面ruturn,break,continue依然要执行的。
System.exit(0);除外。
在这里做的一般的都是资源的清理,连接的关闭或者管道的关闭。
书写多个catch注意:
1.catch块的捕获,异常类型无继承关系的话。则顺序是没有要求的。
如果有继承关系,则子类在前,父类在后。
2.try,catch,finally都不允许单独存在。(catch,finally前必须有try)
异常的打印:
用 xx.printStrackTrace(); 打印异常的堆栈信息。
注意:1.此代码主要用在代码测试的阶段,打印出未知异常的信息,便于进行调整。
2.运行阶段,一般将这段代码注释掉。
***************************************************************************************************
编译时异常:
在方法中的方法声明部分的,形参小括号之后,方法块大括号之前,写入throws +需要抛出的异常类型的类名(可以跟多个异常,用逗号隔开)
eg: public void method() throws Exception{
//执行的一系列代码,但是会发出警告,在编译的时候, 有可能报出的异常。
}
注意:
1. 不能抛出运行时异常(运行时异常就算主动抛了,但是在编译时也不会要求你立即处理)
2.一个方法的完整声明形势包括了throws, 甚至main方法也可以throws
3.方法重写的规范被更新。增加: 子类被重写方法不能比父类抛出更多的异常(更多指的是范 围,不是异常的个数)
4.只有在抛出编译时异常,调用者才会收到警告;抛出运行时异常,调用者不会在编译期被警告。
调用时异常的处理和运行时的异常处理的方式一样,都是2个方向(try-catch-finally处理或者往上抛两种处理方式)。
***************************************************************************************************
throw与throws
 throw:throws:
位置:写在方法体中,是执行语句写在方法声明的最后,是一条声明语句
后面接的内容:后面接的是一个异常对象接的是一个或者多个异常类型的类名
含义:一旦执行到throw语句,就会真正的发生  一个异常对象被抛出的动作仅仅表明本方法有可能抛出某种或某几 种类型的异常,仅在编译期提示调用者 运行期不发生
如果捕获到后要立刻处理:try -catch--finally
如果捕获后不处理继续向下抛出:就在方法声明部分用throws 抛出给调用他的区域。
***************************************************************************************************
程序员如何用异常处理:
1.调用先人有的throws声明方法,99%马上try---catch
2.运行时异常:
1>多做if判断,不让异常有产生的机会。
2>不是所有的异常,都用try---catch。特别是空指针异常。
(最好采用事前处理) try--catch重点考虑的是代码流程的控制
3>throw ,throws只有在大型分层项目中,才有可能自己写。
***************************************************************************************************
自定义异常语法:
要求:1.必须是一个异常类(继承Exception就OK)。
2.自己添加的功能行为。
步骤: 1.创建一个异常类继承Exception
2.添加构造方法和普通方法
3.在一个方法中抛出异常。
4.在另一个方法中捕获并处理这个异常
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值