java异常

目录

异常概述

异常就是用来描述代码中出现的问题

编译时异常和运行时异常

JVM的默认处理方案

异常处理方式---throws

这个格式是写在方法的定义处,表示声明一个异常。

抛出异常对象----throw

throws和throw的区别

异常处理方式

自定义异常


异常概述

 

异常就是用来描述代码中出现的问题

异常:就是程序出现了不正常的情况,程序在执行过程中,出现的非正常的情况,最终导致JVM的非正常停止。

注意:语法错误不算是异常体系中

异常体系:Throwable 

                1,Error

                2,Exception

                        1,RuntimeException及其子类

                        2,除了RuntimeException之外所有的异常

Error:严重问题,通过代码无法处理。

比如:内存溢出。

Exception:称为异常类,它表示程序本身可以处理的问题

        RuntimeException及其子类:运行时异常。(空指针异常,数组索引越界异常)

        除RuntimeException之外所有的异常:编译器必须处理的,否则程序不能通过编译,(日期格式化异常)

编译时异常和运行时异常

java文件  javac.exe 编译时异常,实在编译成class文件时必须要处理的异常,也称之为受检异常

字节码文件:java.exe 运行时异常,在编译成class文件不需要处理,在运行字节码文件时可能出现的异常,也称之为非受检异常

编译时异常就是在编译的时候出现的异常,运行时异常就是在运行时出现的异常

JVM的默认处理方案

如果程序出现了问题,我们没有做任何处理,最终JVM会默认的处理

        把异常的名称,异常原因及出现异常的位置等信息输出在控制台

        程序停止运行

异常处理方式---throws

格式:throws  异常类名;

这个格式就是写在方法的定义出,表示声明一个异常。

1,告诉调用者,调用这个方法,有可能会出现异常

2,如果这个方法没有出现异常,程序正常执行

2,如果这个方法出现异常,其实也就是将这个异常交给了调用者处理

3,如果调用者也没有处理,还是交给虚拟机处理

4,而main方法的调用者是虚拟机还是会采取虚拟机默认处理异常的方法。

这个格式是写在方法的定义处,表示声明一个异常。

编译时异常因为在编译时就会检查,所以必须要写在方法后面进行显示声明

运行时异常因为在运行时才会发生,所以在方法后面可以不写

抛出异常对象----throw

格式: throw  new  异常();

这个格式实在方法内的,表示当前代码手动抛出一个异常,下面代码不用再执行了。

throws和throw的区别

throws

        用在方法声明后面,跟的是异常类名

        表示声明异常,调用该方法有可能出现这样的异常

throw

        用在方法体内,跟的是异常对象名

        表示手动抛出异常对象,由方法体内的语句处理

异常处理方式

        异常的处理方式:try--catch--

格式:

             try{

                        可能出现异常的代码;

              } cath (异常类名  变量名){

                        异常的处理代码;

              }

好处是:为了能让代码继续往下运行

注意:

        1,如果try中没有遇到问题,怎么执行?

                会把try中所有的代码全部执行完毕,不回执行catch里面的代码

        2,如果try中遇到了问题,那么try下面的代码还会执行吗?

                那么直接跳转到对应的catch语句中,try下面的代码不会执行了

                当catch里面的语句全部执行完毕,表示整个体系全部执行完成,继续执行下面的代码

        3,如果出现的问题没有被捕获,那么程序如何运行?

                那么try...catch就相当于没有写,那么也就是自己没有处理

                默认交给虚拟机处理

        4,同时又可能出现多个异常怎么处理?

                出现多个异常,那么就要写多个catch就可以了

                如果多个异常之间存在子父类关系,那么父类一定要写在下面

Throwable的成员方法

自定义异常

步骤:

        1,定义异常类

        2,写继承关系

        3,空参构造方法

        4,代参构造方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值