9.28Java 异常

异常

异常定义:一种对错误的识别及响应的机制

异常分类

异常分为Throwable下分为Error  系统错误 和Exception 代码问题导致的异常

Error :

系统内部错误,这类错误由系统进行处理,程序本身无需捕获处理  程序员改不了

比如:OOM(内存谥出错误)、VirtualMachineError(虚拟机错误)、StackOverflowError(栈栈
溢出错误)等,一般发生这种情况,JVM会选择终止程序。

Exception(一般程序员说的是这个)  一颗赛步森

Exception是所有异常类的父类。分为非RuntimeException和RuntimeException

非RuntimeException  在编译的时候报错
指程序编译时需要捕获或处理的异常,如IOException、自定义异常等。属于checked
异常。
RuntimeException  运行时报错 。
指程序编译时不需要捕获或处理的异常,如:NullPointerException等。属于
1 nchecked异常。一般是由程序员粗心导致的。如空指针异常、数组越界、类型转换
异常等

方法

getMessage()  给用户看。

throws   捕捉异常并抛出,但是不能处理异常。

传递性

可以抛出更大的异常

多个抛出用逗号分割不区分顺序

覆写中子类不能比父类不能抛出更宽泛的异常

2.try.....catch   处理异常

语法

try{ 高危代码}catch(异常类类名 形参){异常的处型}

注意点:

1.如果try中的高危代码报错,其下方代码不再执行,直接执行catch中的代码.

2.如果tyr中的高危代码没报错,则Catch不再运行

Catchd的用法

catch要想执行,需要捕获对应的异常

可以多个Catch    但是注意顺按照从小到大的顺序分别将错误抛出并解决。

也可以只写写异常的父类

进阶用法     1.catchd 可以嵌套

jdk1.7,自动关闭I0资源流
(打开的资源流)  自动关闭不用手动调用Close()


try(FileInputstream fileInputstream=new FileInputstream(name:"D:/XXXXX")){

进阶2. finally,和try...catchi连用,必定会执行的代码 

只有一种情况不执行System.exit();

自定义异常

步骤

1.先创建一个类,这个类需要继承已知的异常类,一般继承Exception
2.需要定义一个公有的无参构造

3.需要定义一个公有的有参构造,调用父类的构造方法,把参数穿进去

public class Exception_06 extends Exception{
public Exception_06(){
public Exception_06(String msg)
super(msg);
}

throw 异常源点

           

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值