Java之异常与错误的区别及java的异常体系
来源:互联网 发布:收购淘宝账号400元 编辑:程序博客网 时间:2024/05/16 11:25
异常和错误的区别 异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发人员)已经犯了个错误,现在有一个机会来修改它。Java中使用异常类来表示异常,不同的异常类代表了不同的异常。但是在Java中所有的异常都有一个基类,叫做Exception。 错误:它指的是一个合理的应用程序不能截获的严重的问题。大多数都是反常的情况。”,错误是VM的一个故障(虽然它可以是任何系统级的服务)。所以,错误是很难处理的,一般的开发人员(当然不是你)是无法处理这些错误的。比如内存溢出; 和异常一样,在Java中用错误类来表示错误,不同的错误类代表了不同的错误。 但是在Java中所有的错误都有一个基类,叫做Error。 综上,我们可以知道异常和错误最本质的区别就是异常能被开发人员处理而错误时系统本来自带的,一般无法处理也不需要我们程序员来处理。 异常的分类 在Java中异常分为两大类:编译异常和运行异常 运行异常即是RuntimeException;其余的全部为编译异常 JAVA中的异常体系 在Java中异常Exception和错误Error有个共同的父类Throwable. 如图: 三、runtimeException几个子类的具体介绍 1、 java.lang.ArrayIndexOutOfBoundsException 数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。 2、java.lang.ArithmeticException 3、java.lang.NullPointerException 4、java.lang.ClassNotFoundException
算术条件异常。譬如:整数除零等。
空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等
找不到类异常。当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常。
三、runtimeException几个子类的具体介绍
1、java.lang.ArrayIndexOutOfBoundsException
数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。
2、java.lang.ArithmeticException
算术条件异常。譬如:整数除零等。
3、java.lang.NullPointerException
空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等
4、java.lang.ClassNotFoundException
找不到类异常。当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常
Error类和Exception类都继承自Throwable类。
- Error的继承关系:
java.lang.Object
java.lang.Throwable
java.lang.Error
- Exception的继承关系:
java.lang.Object
java.lang.Throwable
java.lang.Exception
二者的不同之处:
Exception:
1.可以是可被控制(checked) 或不可控制的(unchecked)
2.表示一个由程序员导致的错误
3.应该在应用程序级被处理
Error:
1.总是不可控制的(unchecked)
2.经常用来用于表示系统错误或低层资源的错误
3.如何可能的话,应该在系统级被捕捉
Java 中定义了两类异常:
1) Checked exception: 这类异常都是Exception的子类 。异常的向上抛出机制进行处理,假如子类可能产生A异常,那么在父类中也必须throws A异常。可能导致的问题:代码效率低,耦合度过高。
2) Unchecked exception: 这类异常都是RuntimeException的子类,虽然RuntimeException同样也是Exception的子类,但是它们是非凡的,它们不能通过client code来试图解决,所以称为Unchecked exception 。
Java 中异常类的继承关系图:
java.lang.Throwable
java.lang.Error
java.lang.Throwable
java.lang.Exception
1.可以是可被控制(checked) 或不可控制的(unchecked)
2.表示一个由程序员导致的错误
3.应该在应用程序级被处理
1.总是不可控制的(unchecked)
2.经常用来用于表示系统错误或低层资源的错误
3.如何可能的话,应该在系统级被捕捉
1) Checked exception: 这类异常都是Exception的子类 。异常的向上抛出机制进行处理,假如子类可能产生A异常,那么在父类中也必须throws A异常。可能导致的问题:代码效率低,耦合度过高。
2) Unchecked exception: 这类异常都是RuntimeException的子类,虽然RuntimeException同样也是Exception的子类,但是它们是非凡的,它们不能通过client code来试图解决,所以称为Unchecked exception 。
- Java之异常与错误的区别及java的异常体系
- Java之异常与错误的区别及java的异常体系
- Java之异常与错误的区别及java的异常体系
- Java之异常与错误的区别及java的异常体系
- Java之异常与错误的区别及java的异常体系
- Java之异常与错误的区别
- java的异常体系
- Java的异常体系
- Java的异常体系
- Java的异常体系
- Java异常体系及注意事项
- java异常体系及注意事项
- Java异常体系及异常处理
- Java异常体系介绍及自定义异常
- Java异常处理体系—Error类与Exception类的区别
- Java编程之异常体系
- java异常处理机制及两种异常的区别
- java的常见异常与错误总结
- 嵌入式SQL笔记
- 浅谈利用逻辑回归来解决文本分类时的模型调优
- C语言中嵌入式SQL语句
- Installation Instructions for Linux Systems
- Oracle sql 性能优化【来自于网络】
- Java之异常与错误的区别及java的异常体系
- 开始TMS320C6000系列DSP硬件的学习
- SQL优化34条
- 详解Heritrix多线程结构
- 从苹果iPod生产看全球财富分配
- 如何招聘程序员-梁山好汉式or科举考试型
- 22 JAN 2011 Note
- EF & Model Validation & WinForm UI DataBinding
- python小程序