java error体系描述了_详解Java异常处理——简介

什么叫异常

异常也叫例外,它是超出程序正常执行流程的某些特殊状况。它与错误不同,出现异常并不是说程序错了。比如:添加用户操作,我们的本意是添加一个用户,但假如此用户已存在,我们不能重复添加。那么,这就是异常的一种,但我们不能说这是错误。

为什么要处理异常

1、异常处理使得应用程序不至于出现问题就崩溃,增强了程序的健壮性。

2、“时时刻刻为用户着想”是每个程序员的职责,我们不能让用户看到他们不懂的信息,而应该给人家一个友好的提示。

3、安全性。尽量少的暴露系统信息,防止不法分子利用这么信息对我们进行攻击。

异常的分类

0818b9ca8b590ca3270a3433284dd417.png

Throwable

Java语言中所有错误或异常的超类

Error

Error类体系描述了Java运行系统中的内部错误以及资源耗尽的情形。应用程序不应该抛出这种类型的对象(一般是由虚拟机抛出)。如果出现这种错误,一般我们的应用程序是无能为力的。对于这类错误,我们可以了解,但具体编写代码时,忽略即可。

Exception

Exception是可以从任何标准Java库的类方法、自己的方法以及运行时任何异常中抛出来的异常的基类型。它包括执行异常(RuntimeException)和检查异常(Checked Exceptions)两种。

Checked Exceptions

Checked异常都是可以被处理的异常。这种异常的产生分两种情况:一是程序员调用会抛出异常的库函数(库函数的异常由库程序员抛出);二是客户程序员自己使用throw语句抛出异常。Checked异常必须被显式处理,如果程序没有处理Checked异常,该程序在编译时就会发生错误无法编译。

我们比较熟悉的Checked异常有

Java.lang.ClassNotFoundException

Java.lang.NoSuchMetodException

java.io.SQLException

runtimeException

运行时异常,不需要由程序员显式的抛出,一旦出现错误,相应的异常会被自动抛出。出现RuntimeException异常,一定是程序存在逻辑错误,要对程序进行修改。

我们比较熟悉的RumtimeException类的子类有

Java.lang.ArithmeticException

Java.lang.ArrayStoreExcetpion

Java.lang.ClassCastException

Java.lang.IndexOutOfBoundsException

Java.lang.NullPointerException

小结

RuntimeException与Error是unChecked Exception,可以在任何代码中产生,不需要由我们显式抛出。遇到Error,我们一般是无能为力的。遇到RuntimeException,相应的异常会被自动抛出。所以只有Checked Exceptions才是我们所关心的,程序应该且仅应该抛出或处理这类异常。

注意事项

虽然异常给我们带来了各种好处,但我们也不能过度使用异常 。相对而言,异常机制的效率还是比较差的。对于应该声明方法抛出异常还是在方法中捕获异常?遵循一个原则:捕捉并处理那些知道如何处理的异常,而传递那些不知道如何处理的异常。 至于java中具体如何使用异常处理,待下篇博客细讲。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值