栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 异常(exception)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 异常(exception)

 一、概念:在程序流中exception可以描述一些异常的情况并阻止程序进行更深入的执行。

二、关系:

Error类和Exception类都继承自Throwable类。

Exception:

1.可以是可被控制(checked) 或不可控制的(unchecked)。

2.表示一个由程序员导致的错误。

3.应该在应用程序级被处理。

Error:

1.总是不可控制的(unchecked)。

2.经常用来用于表示系统错误或低层资源的错误。

3.如何可能的话,应该在系统级被捕捉。

 Exception 分为:

1)Checked exception: 这类异常都是Exception的子类 。异常的向上抛出机制进行处理,假如子类可能产生A异常,那么在父类中也必须throws A异常。可能导致的问题:代码效率低,耦合度过高。

2) Unchecked exception: 这类异常都是RuntimeException的子类,虽然RuntimeException同样也是Exception的子类,但是它们不能通过client code来试图解决,所以称为Unchecked exception 。

和Unchecked Exceptions比较,checked exceptions必须被调用者所捕获,或者被列为方法签名的一部分(使用throws关键字)

 三、常见的exception

 Java 的非检查性异常描述
NullPointerException空指针当应用程序试图在需要对象的地方使用 null 时,抛出该异常
IllegalArgumentException非法参数抛出的异常表明向方法传递了一个不合法或不正确的参数。
IllegalStateException在非法或不适当的时间调用方法时产生的信号。换句话说,即 Java 环境或 Java 应用程序没有处于请求操作所要求的适当状态下。
IndexOutOfBoundsException下标越界指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出。
UnsupportedOperationException不支持操作当不支持请求的操作时,抛出该异常。
ArrayIndexOutOfBoundsException用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
ClassCastException强制转换当试图将对象强制转换为不是实例的子类时,抛出该异常。
EnumConstantNotPresentException枚举常量不存在异常。当应用试图通过名称和枚举类型访问一个枚举对象,但该枚举对象并不包含常量时,抛出该异常。
NumberFormatException数字格式当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。
StringIndexOutOfBoundsException此异常由 String 方法抛出,指示索引或者为负,或者超出字符串的大小。
IOException输入输出异常
ArithmeticException算术运算
NegativeArraySizeException 创建一个大小为负数的数组错误异常
SecurityException安全异常
ArrayStoreException -向数组中存放与声明类型不兼容对象异常
NoSuchMethodException方法未找到异常:
SQLException

操作数据库异常:

FileNotFoundException文件未找到异常:

 四、自定义异常类:

  • 写一个检查性异常类,需要继承 Exception 类。
  • 写一个运行时异常类,需要继承 RuntimeException 类。
class 类名 extends 异常名 {
  
    public 异常名 {
        super();
    }

    public 异常名( message参数 ) {
        super( message );
    }

    public 异常名(message参数, Throwable cause 参数) {
        super( message, cause );
    }
}

 异常想要被抛出和捕获,需要同时使用throw、throws、try、catch以及finally等函数。

 

 五、小结

采用exception提高了我们debug的效率。 异常在Java中是错误管理的基础。和错误码、错误标记及状态相比,异常(Exceptions)让错误条件的处理和提示变得非常的容易,异常不能忽略。

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/340592.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号