java异常机制笔记

1.异常分类

检查性异常:
是指程序员无法预见的异常,是用户操纵可能出现的,比如打开一个不存在的文件,这种异常代码层次就应该预知并进行处理。
运行时异常
运行时异常可能在代码编译阶段被检查通过,比如空指针和数组越界,这些运行时就会出错。
错误
错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出
时,一个错误就发生了,它们在编译也检查不到的。

在这里插入图片描述

1.1 Error

是由java虚拟机抛出的异常,大多数错误和代码运行时无关,比如java虚拟机运行错误。
这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。

1.2 Exception

Exception异常是最大的异常,下面的RuntimeException (运行时异常)
运行时异常又细分。

ArrayIndexOutOfBoundsException (数组下标越界)
NullPointerException (空指针异常)
ArithmeticException (算术异常)
MissingResourceException (丢失资源)
ClassNotFoundException (找不到类)

这些异常是在代码检查阶段不会被检查的,在运行的可能会发生错误。可以捕获也可以不捕获。

检查性异常IOException 、 SQLException 等以及用户自定义的 Exception 异常,一般情况下不自定义检
查异常。可以捕获或者抛出,不然编译不通过

Error 和 Exception 的区别: Error 通常是灾难性的致命的错误,是程序无法控制和
处理的,当出现这些异常时,Java虚拟机(JVM)一般会选择终止线程; Exception 通常情况下是可
以被程序处理的,并且在程序中应该尽可能的去处理这些异常。

2.Java异常处理机制

2.1 抛出异常

遇到的异常,向上一级进行抛出,在最上级进行统一处理。

 public static void main(String[] args) throws Exception {}

2.2 异常捕获

try 、 catch 、 finally 、 throw 、 throws

 try {

        }catch (Exception e){

        }finally{ 
            
        }

对于最上级,throws 无法再抛出异常,需要对异常进行统一的捕获处理。
对于可能发生异常的代码放在try
对于捕获到的异常再catch处理
对于一些必须要关闭的资源,需要在finally进行处理,比如io关闭连接等

2.3 try, catch,finally ,return 执行顺序

1.执行try,catch , 给返回值赋值
2.执行finally
3.return

2.4 自定义异常处理

自定义异常,自己创建类,继承Exception 即可

class MyException extends Exception {
}
 try {

        }catch (MyException e){

        }finally{

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值