异常

时间:2019-06-12
本文章向大家介绍异常,主要包括异常使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

1、异常

什么是异常?Java代码在运行时期发生的问题就是异常。

比如:空指针异常,数组越界异常,类型转换异常

异常的继承体系

在Java中使用Exception类来描述异常。

Exception 类及其子类是 Throwable 的一种形式

Exception是异常类

Throwable有两个子类,一个Error(是错误//只能修改代码来处理),

一个Exception(是异常//)

抛出异常throw

它用来抛出一个指定的异常对象

1,创建一个异常对象。比如:空指针异常,数组越界异常,类型转换异常

使用格式:

throw new 异常类名(参数);

声明异常throws

声明异常格式:

修饰符 返回值类型 方法名(参数) throws 异常类名1,异常类名2… {   }

需要配合使用

案列:

异常分为可处理和不可处理,可处理的处理,处理不了的终止

捕获异常try…catch…finally

捕获异常格式:

try {

     //需要被检测的语句。

}

catch(异常类 变量) { //参数。

     //异常的处理语句。

}

finally {

     //一定会被执行的语句。//出不出错都要执行

}

 

效果:这是自己处理的

如果有多个catch一定要注意顺序,总父类在最后一个catch

两种处理方式:自己处理的不会结束接下来的代码运行,虚拟机处理的第一步就是停止代码运行,然后在控制台报错

try…catch…finally异常处理的组合方式

try catch finally组合:检测异常,并传递给catch处理,并在finally中进行资源释放。

try catch组合 : 对代码进行异常检测,并对检测的异常传递给catch处理。对异常进行捕获处理。

一个try 多个catch组合 : 对代码进行异常检测,并对检测的异常传递给catch处理。对每种异常信息进行不同的捕获处理。

try finally 组合: 对代码进行异常检测,检测到异常后因为没有catch,所以一样会被默认jvm抛出。异常是没有捕获处理的。但是功能所开启资源需要进行关闭,所有finally。只为关闭资源。

运行时期异常

l  RuntimeException和他的所有子类异常,都属于运行时期异常。NullPointerException,ArrayIndexOutOfBoundsException等都属于运行时期异常.

l  运行时期异常的特点:

n  方法中抛出运行时期异常,方法定义中无需throws声明,调用者也无需处理此异常

n  运行时期异常一旦发生,需要程序人员修改源代码.

异常在方法重写中细节

子类覆盖父类方法时,如果父类的方法声明异常,子类只能声明父类异常或者该异常的子类,或不写。

父类没有抛异常子类不能抛

 

当在子类重写时,父类没有抛,子类调用了抛异常的方式,只能掉用try catch finally方法来解决子类的异常

异常中常用方法

l  getMessage方法:返回该异常的详细信息字符串,即异常提示信息

l  toString方法:返回该异常的名称与详细信息字符串

l  printStackTrace:在控制台输出该异常的名称与详细信息字符串、异常出现的代码位置

2、自定义异常

定义一个类

引用类

异常捕获

异常产生原因

原文地址:https://www.cnblogs.com/pandam/p/11010721.html