异常分类,异常抛出位置

异常(Exception)

  在Java中用类的形式对不正常进行描述和封装对象,描述不正常的情况的类成为以异常类。并且将正常代码流程和问题处理代码相分离,提高了阅读性。

  问题很多,意味着描述的类也很多,将其进行向上概括抽取,形成异常体系。

Throwable:无论是Error还是异常都能在问题发生时抛出,让调用者知道并处理

(一)、一般不可处理的,Error;

(二)、可处理的,Exception。

   class FushuIndexExexception extends Exception

{

    FushuIndexExexception()

    {}

}//自己定义的函数

class Demo                        

{                                                     

    public int method(int []arr ,int index) throws FushuIndexExexception//在函数标注处用throws,表示抛出

    {

        if(index>=2)    

        {                          

            throw new NullPointerException("数组的引用不能为空");//在函数内注处用throws,表示抛出

        }

        if(index<= 0)

        {

            throw new FushuIndexExexception();

        }

        return index;

    }

 

   

}                                                  

public class text {                                  

   public static void main(String[] args) throws FushuIndexExexception//在函数标注处用throws,表示抛出

   {   int []arr=new  int[20];

        Demo d=new Demo();

       int num=d.method(arr,-10);

       System.out.println(num);

}

}

异常的分类:

(一)编译时被检测到异常:只要是Exception和其子类都要,除了特殊子类RuntimeException体系;

(这种问题在一出现实,希望在编译时被检测,让这种问题有对应的处理方式)

(二) 编译时检测不到异常(运行时检测到异常):就是Exception中的RuntimeException和其子类;(这种问题的发生无法让功能继续,运算无法进行,更多是因为调用的原因造成的,或者引发内部状态的改变导致的,这种问题一般不处理,让编译通过,让编译时强行停止,进行编码修改)

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

throws和throw的区别:

  1. throw使用在函数内;

throws使用在函数上;

  1. throws抛出异常类,可以抛出多个,用逗号隔开;

throw抛出的是异常对象

原文地址:https://www.cnblogs.com/lujun1949/p/5461115.html