
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
Java异常是每一位学习Java编程开发语言的同学都需要熟练掌握的一个编程知识点,而本文我们就通过案例分析来简单了解一下,Java异常概念与分类。
1、什么是异常
异常是指程序在运行过程中发生的,由于外部问题导致的运行异常事件,如:文件找不到、网络连接失败、空指针、非法参数等。
异常是一个事件,它发生在程序运行期间,且中断程序的运行。
Java是一种面向对象的编程语言,它的异常都是对象,是Throwable子类的实例,当程序中存在错误条件时,且条件生成时,错误就会引发异常。
2、异常的分类
2.1Throwable
Throwable是Java语言中所有错误与异常的顶层父类,其他类都继承于该类。Throwable包含两个子类:Error(错误)和Exception(异常),它们通常用于指示发生了异常情况。Throwable包含了其线程创建时线程执行堆栈的快照,它提供了printStackTrace()等接口用于获取堆栈跟踪数据等信息。
2.2Error(错误)
Error类及其子类:程序中无法处理的错误,表示运行应用程序中出现了严重的错误。通常情况为下应用程序"不应该试图捕获的严重问题"。
此类错误一般表示代码运行时JVM出现问题。通常有VirtualMachineError(虚拟机运行错误)、NoClassDefFoundError(类定义错误)等。比如OutOfMemoryError:内存不足错误;StackOverflowError:栈溢出错误。这些错误是不可查的,因为它们在应用程序的控制和处理能力之外,而且绝大多数是程序运行时不允许出现的状况。在Java中,错误通过Error的子类描述。
2.3Exception(异常)
Exception以及它的子类,代表程序运行时发送的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。Exception这种异常又分为两类:运行时异常和编译时异常。
2.3.1运行时异常
都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,也会编译通过。
2.3.2非运行时异常(编译异常)
是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。
2.3.3检查性异常(checkedexception)
正确的程序在运行中,很容易出现的、情理可容的异常状况。可查异常虽然是异常状况,但在一定程度上它的发生是可以预计的,而且一旦发生这种异常状况,就必须采取某种方式进行处理。
除了Error和RuntimeException的其它异常。Java语言强制要求程序员为这样的异常做预备处理工作(使用try…catch…finally或者throws)。在方法中要么用try-catch语句捕获它并处理,要么用throws子句声明抛出它,否则编译不会通过。类似如SQLException,IOException,ClassNotFoundException等。
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei456学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。