Java 异常

异常是什么?

异常是程序中可能遇见的问题。

异常的最上层父类是谁?异常分为几类?

异常的最上层父类是Exception(我们一般会用Exception以及它的子类来封装程序出现的问题)

异常分为运行时异常编译时异常

编译时异常:除了RuntimeException本身和它的子类,其他都是编译时异常,直至继承于Exception。编译阶段出现错误提醒

运行时异常:RuntimeException本身和子类。编译阶段没有错误提醒,运行时出现

举个例子:

1.编译时异常:

2.运行时异常

异常的作用

作用一:异常是用来查询bug的关键参考信息

作用二:异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况

异常处理方式

一.JVM默认处理方式
  1.把异常的名称、异常原因和异常出现的位置等信息以红色字体打印在控制台
  2.程序停止执行,异常下面的代码不会执行
二.自己处理(捕获异常)
    遇见异常不会停止,执行catch里的部分,之后还会继续执行catch后的代码
    格式:
        try{
            可能异常的代码;
        }catch(异常类名 变量名){
            异常处理代码;
        }
     1.如果try中没有遇见问题,直接执行catch之后的代码,不会执行catch里的代码
     2.如果try里有多个问题,写多个catch与之对应,如果我们要捕获的的异常存在父子关系,父类一定要写在下面,可以写在一块
     3.如果try中遇到的问题没有被捕获的话,那catch相当于白写了,还要看JVM
     4.try遇见了问题,会跳过下面的代码,执行catch

异常里的常见方法:

public String getMessage()         返回此throwable的详细消息字符串

public String toString()                 返回此可抛出的简短描述

public void printStackTrace()        把异常的错误信息输出在控制台

注意一下,e.printStackTrace不会停止方法,还会继续执行后边的代码

抛出处理

throws

注意:写在方法定义处,表明声明一个异常,告诉调用者,使用本方法可能会有哪些异常

public void 方法() throws 异常类名1,异常类名2···{
        ······
}

编译时异常:必须要写(比如上文举例的编译时异常)

运行时异常:可以不写

throw

注意:写在方法内,结束方法;手动抛出异常对象,交给调用者;方法中下面的代码不再执行了

public void 方法(){
    throw new NullPointerException();
}

在方法中,出现异常了,方法就没有继续运行下去的必要了,采取抛出处理,让该方法结束运行并告诉调用者出现了问题

自定义异常

①定义异常类

②写继承关系

③空参构造

④带参构造

  • 26
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值