------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
异常就是程序在运行时出现的不正常情况。
异常的由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述,并封装成对象。
在java中用类的形式对不正常情况进行了描述和封装对象。描述不正常的情况的类,就称为异常类。
1. 以前正常流程代码和问题处理代码相结合,现在将正常流程代码和问题处理代码分离,提高阅读性。
2. 其实异常就是java通过面向对象的思想将问题封装成了对象,用异常类对其进行描述。
3. 不同的问题用不同的类进行具体的描述。比如角标越界、空指针异常等等。
4. 问题很多,意味着描述的类也很多,将其共性进行向上抽取,形成了异常体系。
JDK中--------java.lang.Throwable:
Throwable:可抛出的。
Error:错误,一般情况下,不编写针对性的代码进行处理,通常是jvm发生的,需要对程序进行修正。
Exception:异常,可以有针对性的处理方式
处理方式有两种:1、捕捉;2、抛出。
1、捕捉异常的方法:java有针对性的语句块进行处理。
try {
需要被检测的代码;
}
catch(异常类 变量名){
异常处理代码;
}
fianlly{
一定会执行的代码;
}
try catch finally 代码块组合特点:
(1)try catch finally
(2)try catch(多个)当没有资源需要释放时,可以不用定义finally。
(3)try finally 异常无法直接catch处理,但是资源必须关闭。
捕获异常Demo
class Demo
{
public static void main(String[] args) //throws Exception
{
Demo d = new Demo();
try
{
int x = d.div(4,0);
System.out.println("x="+x);
}
catch (Exception e)
{
System.out.println(e.toString());
}
finally{
System.out.println("over");
}
}
}
2、抛出异常:如果让一个类成为异常类,必须要继承异常体系,因为只有成为异常体系的子类才有资格具备可抛性
抛出异常的两个关键字:throw和throws,两个关键字的区别
(1)throws用于标识函数暴露出的异常类,并且可以抛出多个,用逗号分隔。
(2)throw用于抛出异常对象。
(3) thorws用在函数上,后面跟异常类名。
(4)throw用在函数内,后面跟异常对象。
抛出异常Demo
class Demo{
public static int method(int[] arr, int index) throws NullPointerException,FuShuIndexException{
if(arr == null)
throw new NullPointerException("没有任何数组实体");
if(index < 0){
throw new FuShuIndexException("数组的角标是负数啦!" );
}
return arr[index];
}
}