异常

2017-11-06  本文已影响0人  咸鱼有梦想呀

1.异常
异常:在运行时发生的错误
异常类:描述不正常的情况的类
在Java中将异常按照面向对象的思想将问题封装成了对象,用异常类对其进行描述。以对象抛出的形式体现。

2.体系
由于问题很多,也就说描述的类也很多。
将其共性进行向上抽取,形成了异常体系。

Throwable(可抛出)

无论是error还是exception,问题发生就应该可以抛出,而这个体系的特点就在于throwable及其所有的子类都具有可抛性。

异常声明抛出
可抛性的体现:通过throws和throw两个关键字体现。
凡是可以被这两个关键字所操作的类和对象都具有可抛性。

函数内出现异常,需要在函数外申明;调用了发生异常的函数或者申明异常的函数,处理方式就是抛出

throws和throw的区别:
1.throws使用在函数上
throw使用在函数内
2.throws抛出的是异常类,可以抛出多个,用逗号隔开
throw抛出的是异常对象。

3.异常的分类

自定义异常时,要么继承Exception,要么继承RuntimeException。

4.异常捕捉trycatch
这是可以对异常进行针对性处理的方式

具体格式:

try
{
//需要被检测异常的代码。
}
catch(异常类 变量)//变量:用于接收发生的异常对象
{
//处理异常的代码。
}
finally
{
//一定会被执行的代码。
}

举个栗子
数组角标越界

class FuShuIndexException extends Exception
{
    FuShuIndexException()
    {}
    FuShuIndexException(String msg)
    {
        super(msg);
    }
}

class Demo9
{
    public int method(int[] arr,int index)throws FuShuIndexException
    {
        if(index<0)
            throw new FuShuIndexException("角标变成负数了");
            return arr[index];
    }
}
public class ExceptionDemo {

    public static void main(String[] args) {
        int[] arr = new int[3];
        Demo9 d = new Demo9();
        try
        {
            int num = d.method(arr, -30);
            System.out.println("num="+num);
        }
        catch (FuShuIndexException e)
        {
            System.out.println("负数角标异常");
        }
        System.out.println("over");
    }

}
运行结果

多catch情况
一个try对象多个catch,有几个异常捕获几个。

多catch父类的catch放在最下面

finally代码块
一定会执行的代码。
但是,当退出jvm时不执行(System.exit(0);)

5.异常处理原则

6.异常的注意事项

上一篇下一篇

猜你喜欢

热点阅读