概述
JAVA中的异常机制(1)
-
什么是异常(exception),异常机制有什么用: 程序执行过程中发生了不正常的情况,而这种不正常的情况叫“异常”,
java把该异常信息打印输出到控制台,供程序员参考,以便修改,让程序更”健壮“(不会因为某些错误的发生导致系统宕机) -
异常在java中以类的形式存在,每一个异常类都可以创建异常对象,
异常对应的现实生活是怎样的:
火灾(异常类)
2008-08-08,小明家着火了(异常对象) -
异常(Exception)类 和 错误(Error)类 都是可抛出(Throwable)类 的,
Error一旦发生不可处理,jvm直接终止运行,异常可以进行处理 -
所有异常都发生在运行阶段
-
异常分为 运行时异常(RuntimeException) 和 编译时异常(ExceptionSubClass(异常的其他直接子类))
运行时异常还可称为 非受检异常(UnCheckedException) 或 非受控异常
编译时异常还可称为 受检异常(CheckedException) 或 受控异常 -
编译时异常表示必须在编写程序的时候对这种异常进行处理,不然编译器报错
运行时异常在编写程序阶段可以选择预先处理也可以选择不处理 -
java语言对异常的处理包括两种方式:
一、在方法声明的位置上,使用throws关键字,抛给上一级
二、使用try…catch语句进行异常的捕捉 -
异常发生后,如果选择了上抛,抛给了我的调用者,调用者需要对这个异常进行继续处理,
那么调用者处理这个异常也同样有两种处理方式 -
注意:如果异常一直上抛,最终抛给了main方法,main方法继续上抛,抛给了调用者JVM,
那就只有一个结果,终止java程序的执行 -
(补充)子类不能比父类抛出更多的异常
如果父类没有抛出异常,则子类只能try catch,不能throws
实例化异常对象:
public class ExceptionTest01 {
public static void main(String[] args) {
//通过“异常类”实例化“异常对象”
ArrayIndexOutOfBoundsException arrayIndexOutOfBoundsException = new ArrayIndexOutOfBoundsException("数组越界异常正确触发了");
System.out.println(arrayIndexOutOfBoundsException);
}
}
//运行结果:
java.lang.ArrayIndexOutOfBoundsException: 数组越界异常正确触发了
运行时异常及逻辑分析:
public class ExceptionTest02 {
public static void main(String[] args) {
/*
程序执行到此处发生了ArithmeticException异常,
底层new了一个ArithmeticException异常对象
然后抛出了,由于main方法调用了100 / 0,
所以这个异常ArithmeticException抛给了main方法,
main方法没有处理,将这个异常 自动抛给 了JVM,
JVM最终终止程序的执行
ArithmeticException 继承 runtimeException,属于运行时异常,
在编写过程不需要对这种异常进行预处理
*/
System.out.println(100 / 0);
// “程序执行成功” 语句没有输出,没有执行
System.out.println("程序执行成功");
}
}
最后
以上就是唠叨皮带为你收集整理的JAVA中的异常机制(概念 和 运行时异常的逻辑分析)的全部内容,希望文章能够帮你解决JAVA中的异常机制(概念 和 运行时异常的逻辑分析)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复