异常机制详解

一、

Error:系统级别问题,java退出等,代码无法控制

(2)

Exception:java.lang包下,称为异常类,他表示程序本身可以处理的问题

(3)RuntimeException及其子类:运行时异常,编译阶段不会报错(空指针异常、数组索引越界异常)

(4)java文件 → 字节码文件 → 运行结果

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

                                                java.exe(运行时异常,在编译成class文件不需要处理,在运行字节码文件时可能出现的异常)

简单来说:编译时异常就是在编译的时候出现的异常,运行时异常就是在运行时出现的异常

二、

(1)数组索引越界异常:ArrayIndex Out of Bounds Exception

(2)空指针异常:NullPointerException

直接输出没有问题,但是调用空指针的变量的功能就会报错

(3)类型转换异常:ClassException

(4)数学操作异常:ArithmeticException

(5)数学转换异常:NumberFormatException

三、

编译时异常

(1)不是RuntimeException或者其子类的异常,编译阶段就会报错,必须处理,负责代码不通过

(2)编译时异常的作用

是担心程序员的技术不行,在编译阶段就爆出一个错误,目的在于提醒不要犯错

四、

异常的默认处理流程

(1)默认会在出现异常的代码那里自动的创建一个异常对象:ArithemticException

(2)异常会从方法中出现的点这里抛出给调用者,调用者最终抛出给JVm虚拟机

(3)虚拟机接收到异常后,先在控制台直接输出异常栈信息数据

(4)直接从当前执行的异常干掉当前程序

(5)后续代码没有机会执行了,因为程序已经死亡

五、

编译时异常的处理机制

(1)出现异常直接抛出去给调用者,调用者也继续抛出去

(2)出现异常自己捕获处理,不麻烦别人

(3)前两者结合出现异常直接抛出去给调用者,调用者捕获处理

六、

异常的处理方式

(1)throws

throws:用在方法上,可以将方法内部出现的异常抛出去给本方法的调用者处理

(2)try......catch

try......catch:监视捕获异常,用在方法内部,可以将方法内部出现的异常直接捕获处理

          ctrl+Alt+T

          Alt+回车:Add' catch'(lausels)

         e.printStackTrace();   //打印异常栈信息

(3)前两者结合

方法+throws Exception

Alt+回车 选try/catch

sc.nextline       //收一行数据

选try catch后

catch(Exception e)

七、

自定义异常

好处:(1)可以使用异常的机制管理业务问题,提醒程序员注意

(2)同时一旦出现bug,可以用异常的形式清晰的指出出错的地方

八、

自定义异常的分类

(1)自定义编译时异常

定义一个异常类继承Exception                                               右键选generate

重写构造器                                                                             再次右键选generate 再选constructor

在出现异常的地方用throw new 的自定义对象抛出                右键generate 再选Exception(有参)

<2>作用:编译时异常里编译阶段就报错,提醒更加强烈,一定需要处理

(2)自定义运行时异常

定义一个异常类继承      RuntimeException

重写构造器

在出现异常的地方用 throw new 自定义抛出

<2>作用:提醒不强烈,编译阶段不报错,运行时才出现

                   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值