初识异常

简介

用户在运行程序的期间,往往有可能会出现各种各样的错误导致程序执行失败,其结果是用户数据丢失。出现这种情况的时候当然不能置之不理,要么就应该告诉用户该错误,要么是用户数据得到保存,否则用户流量将呈现下降的趋势。为了正确的处理错误,Java提供了一种称为:异常处理的错误捕获机制处理。该机制的任务就是将控制权从错误产生的地方转移给能够处理错误的处理器。当然了,想要正确的处理异常情况的前提是必须要研究程序中哪些地方会出现问题和错误。

异常的处理机制就好比生活中较为常见的灾难预防措施,如在公共场所安防灭火器、洒水器。

异常分类

在Java程序设计语言中,异常对象都是派生于Throwable类的一个实例,若内置的异常类不能满足需求,则用户还可以创建自己的异常类。

异常层次目录

所有的异常都是由Throwable继承而来,在下一层又划分为两个分支:ErrorException

  • Error:描述了Java运行时系统的内部错误。在程序当中不应该抛出这种类型的错误,因为该错误除了通知用户之外,我们对它无能为力。
  • Exception
    • IOException:操作IO时出现的异常情况,如操作的文件不存在、试图在文件尾部后面读取数据。
    • RuntimeException:由程序的错误编写而导致异常的出现,如错误的类型转换、数组角标越界。

声明受查异常

Java语言规范将派生于ErrorRuntimeException的所有异常成为非受查异常,其他的所有异常称为受查异常
为什么要声明异常呢?当你遇到无法处理的情况时是不是要告诉别人这件事我做不了你看着办,有点小尴尬的样子~至于为什么受查异常要声明而非受查异常不用声明呢?(声明了也不要紧,只是没必要)-见如下分析~

处理文件时一般会先检查该文件是否存在,但是它是不是有可能在你检查完是否存在后就被删除了,所以受查异常更取决于环境而不只是代码。运行时异常(RuntimeException)出现的原因是由于代码编写的不规范而产生的,这完全是在我们的控制范围内,Java语言建议我们应该将更多的时间花费在修正程序中的错误上,而不是说明这些错误发生的可能性,所以非受查异常要么是我们无能为力的,要么是我们应该通过修正程序来避免发生。

一个方法有可能要声明多个受查异常类型,那么就必须在方法的首部列出所有的异常类,每个异常类之间用逗号隔开。

package tech.zlia.exception.knowledge;

import java.io.EOFException;
import java.io.FileNotFoundException;

public class MyAnimation {

	void drawImage(int i) throws FileNotFoundException , EOFException {
		//do anything
	}
}

重点关注

Throwable RuntimeException IOException 受查异常 非受查异常

posted @ 2020-12-19 12:40  zliawk  阅读(70)  评论(0)    收藏  举报