异常的基本概念:

异常:指所有可能造成计算机无法正常处理的情况

异常处理:是一种特定的程序错误处理机制,它提供了一种标准的方法,用以处理错误,发现可预知及不可预知的情况,及允许开发者识别,查出和修改错漏之处。

 

Java里有两个异常类-Error和Exception。

Error通常指java虚拟机(JVM)出错,用户在程序里无法处理这种错误

Exception包含一般性的异常,这些异常通常在在捕捉到后可以有效处理,确保程序的正常运行。

 

处理错误的方法有以下几个特点:

  1. 不需要打乱原有的程序设计结构,如果没有任何错误产生,那么程序的运行不收影响
  2. 不依靠方法的返回值,来报告错误是否产生
  3. 采用集中的方式处理错误,能够根据错误种类的不同进行对应的错误处理操作。

 

Java里的几个常见异常

  1. 算数异常(ArithmeticException):当出现不符合算数运算逻辑的情况就会出现(例如除以0)。
  2. 空指针异常(NullPointerException);没有给对象开辟内存空间却使用该对象时会出现空指针异常。
  3. 文件未找到异常(FileNotFoundException):当程序试图打开一个不存在文件进行读写操作时,将会引发该异常。经常是由于文件名读错,或者所需要存储的磁盘,CD-ROM等被移走,没有放入等原因造成的。
  4. 数组下标越界异常(ArrayIndexOutOfBoundsException):对于一个给定大小的数组,如果数组的索引超过上限或者低于下限都会造成越界。
  5. 内存不足异常(OutOfMemoryException):当可用内存不足以让Java虚拟机分配一个对象时抛出该错误

 

Java通过面向对象的方法来处理异常,即在一个方法的运行过程中,如果发生了异常,这个方法就会生成一个代表该异常的一个对象,并把它交给运行时系统(Runtime System),系统再寻找一段合适的代码来处理异常。

异常的抛出(throw);生成异常对象并把它交给运行时系统的过程。

异常的捕获(catch):运行时系统在方法的调用栈中查找,并把生成异常的方法开始进行回溯,直到找到包含相应异常处理的方法为止。

异常处理

异常处理是由try,catch,finally等三个关键字组成的程序块。

其语法如下:

try{

要检查的语句;

}

catch(异常类 对象名称){

异常发生的处理语句;

}

catch(异常类 对象名称){

异常发生的处理语句;

}

......

finally{

一定会运行到的代码;

}

异常处理的流程:

Rxjava异常捕获 java中异常捕获_java

 

抛出异常throws和throw,其中throw可以抛出异常类的实例化对象。

在处理异常时,try...catch...finally和throws,throw经常联合使用。