java|java day 15
异常
文章图片
JW}AFRQ3_N5ZJETUO0J7SQ.png
- Thorwable类所有异常和错误的超类,有两个子类Error和Exception,分别表示错误和异常其中异常类Exception又分为运行时异常(RuntimeException)和非运行时异常,这两种异常有很大的区别,也称之为不检查异常(Unchecked Exception) 和检查异常(Checked Exception)。
- Error与Exception
Error是程序无法处理的错误这些异常发生时, Java虚拟机(JVM)一般会选择线程终止。
Exception是程序本身可以处理的异常,这种异常分两大类运行时异常和非运行时异常。 程序中应当尽可能去处理这些异常。
- 运行时异常和非运行时异常
运行时异常也称是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。
非运行时异常也称检查异常,从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。
对于非运行时异常(checked exception)必须要对其进行处理,否则无法通过编译。
处理方式有两种:
1.使用try..catch..finally进行捕获;(一个try后面可以跟多个catch,但不管多少个,最多只会有一个catch块被执行。)
2.在产生异常的方法声明后面写上throws某一个Exception类型,如throws Exception,将异常抛出到外面一层去。
- 自定义异常
所谓自定义异常,通常就是定义一个类,去继承Exception类或者它的子类。因为异常必须直接或者间接地继承自Exception类。
通常情况下,会直接继承自Exception类,一般不会继承某个运行时的异常类。
自定义异常可以用于处理用户登录错误,用户输入错误提示等。
- 【java|java day 15】throws关键字和throw关键字有什么区别和联系
throw用来在方法体内抛出异常,而throws则是方法声明处声明异常。两者有着一定的联系,当一个方法使用throw抛出异常时,要么使用try/catch捕获异常,要么用throws进行声明,否者会出现编译错误。
- 今天学习了异常的类型和异常的处理,了解到了一些常见的异常,如java.lang.nullpointerexception(程序遇上了控制针)、java.lang.arrayindexoutofboundsexception(数组下标越界)等异常。
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 赢在人生六项精进二阶Day3复盘
- 继续努力,自主学习家庭Day135(20181015)
- 事件代理
- Java|Java OpenCV图像处理之SIFT角点检测详解
- java中如何实现重建二叉树
- 2019-01-17-晨读7期-直子Day25
- 21天|21天|M&M《见识》04
- 数组常用方法一
- 阿菘的ScalersTalk第五轮新概念朗读持续力训练Day15|阿菘的ScalersTalk第五轮新概念朗读持续力训练Day15 20191025